1 名前:デフォルトの名無しさん [2012/04/21(土) 22:37:58.49 ] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.cmd】 バッチファイルスクリプト %8 【.bat】 toro.2ch.net/test/read.cgi/tech/1315844420/ 【.cmd】 バッチファイルスクリプト %7 【.bat】 hibari.2ch.net/test/read.cgi/tech/1298873550/ 【.cmd】 バッチファイルスクリプト %6 【.bat】 hibari.2ch.net/test/read.cgi/tech/1277465356/ 【.cmd】 バッチファイルスクリプト %5 【.bat】 pc12.2ch.net/test/read.cgi/tech/1242268171/ 【.cmd】 バッチファイルスクリプト %4 【.bat】 pc12.2ch.net/test/read.cgi/tech/1229955189/ 【.cmd】 バッチファイルスクリプト %3 【.bat】 pc11.2ch.net/test/read.cgi/tech/1217860043/ 【.cmd】 バッチファイルスクリプト %2 【.bat】 pc12.2ch.net/test/read.cgi/tech/1197881068/ 【.cmd】 バッチファイルスクリプト %1 【.bat】 pc11.2ch.net/test/read.cgi/tech/1178281991/
528 名前:デフォルトの名無しさん [2013/01/16(水) 21:34:27.29 ] >>526 runas
529 名前:デフォルトの名無しさん mailto:sage [2013/01/17(木) 15:55:07.56 ] カレントディレクトリにdir 1, dir 2, dir 3ディレクトリがあり copy "dir 1/a.txt" "dir */a.txt" でコピーしようとしたらディレクトリが存在しないと言われました どうすれば空白文字の入った兄弟ディレクトリにコピーできますか?
530 名前:529 mailto:sage [2013/01/17(木) 15:57:04.17 ] 追記。実際にはディレクトリは10個もあるので一つ一つパスを記述するのは無しです。
531 名前:デフォルトの名無しさん mailto:sage [2013/01/17(木) 16:25:23.61 ] 1つのファイルを複数フォルダへなんていう都合のいいコマンドは無い。 諦めて全部書くか、法則性をもとにループで回せ。 for /l %i in (1,1,10) do copy hoge.txt "hage%i\hoge.txt" みたいにな。 ていうかパスに/使うなんてどこから出てきた? 余所の流儀を安易に突っ込むなよ。
532 名前:526 mailto:sage [2013/01/17(木) 17:35:01.89 ] >>528 ありがとうございます、試してみます
533 名前:529 mailto:sage [2013/01/17(木) 18:40:10.74 ] >>531 うまくいきました ありがとうです サブルーチン、if、for、setとかを覚えました 区切り文字気をつけます
534 名前:デフォルトの名無しさん [2013/01/18(金) 00:58:00.05 ] for 文で数値を変えながらsqlを実行してますが ある変数での処理時間がかかりすぎる場合にタイムアウトして 次の変数になり処理するようにすることはできませんか?
535 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 01:01:18.56 ] >>534 localhostにpingでも打ってカウントしれ
536 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 01:35:24.32 ] >>535 どんな意味が?
537 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 06:42:06.30 ] >>536 お前の人生くらいには
538 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 06:43:57.60 ] >>534 コマンド側で割り込みするの気持ち悪いだろ SQL側でやれ
539 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 12:46:33.46 ] cleanmgr /sageset:10 cleanmgr /sagerun:10 としたとき全ドライブでクリーンアップされますが、DVDドライブなども含まれてしまいますか?
540 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 13:16:41.44 ] >>533 区切り気を付けるって… なんか勘違いしてる気がするな。
541 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 15:13:21.29 ] バッチファイルにドラッグ&ドロップされたものがファイルかフォルダかを判別する方法はありますか? ファイルは拡張子が無い場合もあるので「if %~x1%==""」とかでは判別できませんでした。
542 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 16:14:45.32 ] >>541 以下の内容をバッチファイルにしてSendToフォルダに入れてから、好きなファイルまたはフォルダを右クリック→「送る」→バッチファイル の順に操作してみてくれないか? (普通に引数指定で実行してもいいけど) @ECHO OFF ECHO 【情報】引数は"%~f1"です。 IF "%~f1"=="" ECHO 【情報】引数が未指定です。 DIR/A "%~f1\." > NUL IF ERRORLEVEL 1 GOTO STEP2 GOTO STEP3 :STEP2 ECHO 【情報】引数にファイルが指定されています。 GOTO STEP4 :STEP3 ECHO 【情報】引数にフォルダが指定されています。 :STEP4 ECHO 【情報】引数指定テスト終了。 PAUSE
543 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 16:23:51.64 ] c:\users\user\sendtoがファイルになるが?ぼけ
544 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 16:34:14.61 ] >>543 Windows7ではXPと異なり、以下のようにdirコマンドを使って(/aは省略不可)、SendToフォルダの見つける必要があるので注意しましょう。 ※この例の場合、"C:\Users\usr\AppData\Roaming\Microsoft\Windows\SendTo" が本当のSendToフォルダになる。 c:\Users\usr>dir/a *SendTo ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は ****-**** です c:\Users\usr のディレクトリ 2012/10/23 02:20 <JUNCTION> SendTo [C:\Users\usr\AppData\Roaming\Microsoft\Windows\SendTo]
545 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 16:34:56.71 ] 相変わらず nul の使い道を理解してない情弱が多くて何よりだ
546 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 16:45:01.87 ] そういう情弱もな
547 名前:542=544 mailto:sage [2013/01/19(土) 17:02:25.08 ] 確かにコンソールへのメッセージ表示ををNULデバイスにリダイレクトしても、エラーメッセージの表示までは抑制できない。 それは分かるのだが… ちなみにWindows95発売前のMS-DOSだけが対象OSなら、dirコマンドなど使わずとも以下の一行で事足りるように記憶している。 (うろ覚えだから、あまり自信はない。結局。Windows95/NT4.0〜Windows7の場合はVBScriptを利用するのが一番スマートかも?) IF "%1\."=="" ECHO 【情報】ディレクトリが指定されてます。
548 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:02:59.04 ] >>541 ファイルであるか否かを判定するのではなく、 ディレクトリであるか否かを判定する。 if exist "%~1\*" echo;folder else echo;file
549 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:04:47.05 ] カッコが要った。 if exist "%~1\*" ( echo;folder ) else ( echo;file )
550 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:22:55.03 ] >>541 の悩みを一行で解決してくれるとは、さすが情強
551 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:25:43.36 ] c:\users\user\sendtoがfileになるが?ぼけ
552 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:28:16.62 ] %~aIを見るのが正解だな
553 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:43:23.61 ] for /f usebackq %%i in (`mshta vbscript:execute^("CreateObject(""Scripting.FileS ystemObject"").GetStandardStream(1).Write(CreateObject(""Scripting.FileSystemObj ect"").FolderExists(""%~1"")):close"^)`) do echo %%i
554 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:54:32.51 ] バッチで簡単にできることをそこまでするかばか
555 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:57:46.98 ] >>552 set attribute=%~a1 if "%attribute:~0,1%"=="d" (echo;folder) else (echo;file) と、いうところか。
556 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 17:58:34.45 ] そゆこと
557 名前:デフォルトの名無しさん [2013/01/19(土) 21:28:35.08 ] >>555 ジャンクションやディレクトリのシンボリックリンクの属性も、 "d"になるの?
558 名前:デフォルトの名無しさん mailto:sage [2013/01/19(土) 23:19:02.52 ] dにlが付く
559 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 06:20:53.31 ] パスにスペースを含むファイルをバッチファイルにドロップした時は%*%でパスを取得できるけど %~n*%ってやってもファイル名は取得できないね。どうすればいいのだろうか?
560 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 10:56:15.00 ] 普通に for で回すしかないんじゃないか? for %%f in (%*) do echo %%~nf
561 名前:559 mailto:sage [2013/01/20(日) 11:31:33.22 ] >>560 そのままコピペしたらでけたよ!アリガd!!
562 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 11:42:51.74 ] コマンドでファイルの文字コード変換やろうと思っているのですが、 scripting.cocolog-nifty.com/blog/2008/12/cmdexeunicodeut.html のページの set /p x="XX"^<nul という箇所の「XX」の部分はキーボードからはどのように入力すればよいのでしょうか?
563 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 12:16:47.45 ] BOM(0xff 0xfe)か。 そのページからコピペ
564 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 12:41:02.09 ] batファイルスクリプトのみで文字と背景の色を変更する事はできませんか? 他の言語で言うcursesライブラリみたいなかんじで
565 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 14:30:53.47 ] >564 color /?
566 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 16:26:03.22 ] colorは画面全体 文字だけならfindstr
567 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 16:31:03.06 ] 普通に%~n1でいいけど?
568 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 18:58:34.90 ] >>566 日本語でw
569 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 19:05:49.91 ] 標準入出力に対応したコンソールってないですか? PowerCmdとConsole2は未対応でした 有料でも構いませんがなるべく無料がいいです
570 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:09:19.49 ] cmd.exe
571 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 22:15:03.68 ] バッチファイルで文字色と背景色を変えて文字列をECHOする。
572 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 19:16:57.56 ] "set = *"と"set == *"の違いがよく解らないのですが、=を2つ付ける事に意味はあるのでしょうか?
573 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 19:35:34.29 ] どっちも コマンドの構文が誤っています。 なので違いはない。意味もない。
574 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 21:23:30.42 ] set hoge=fuga set hoge==fuga この2つの違いとしたら前者はhogeに「fuga」が、後者は「=fuga」が入っている
575 名前:539 mailto:sage [2013/01/24(木) 20:56:38.30 ] すいませんこれ実行してもクリーンアップされませんでした ダイアログが出て全てチェックはしました なぜでしょうか cleanmgr /sageset:10 cleanmgr /sagerun:10
576 名前:デフォルトの名無しさん [2013/01/25(金) 03:14:53.32 ] バッチファイル内のset /aで、括弧使って計算をグループ化したらエラーに マニュアルどおりにやってるはずなのに・・・ と色々ググったりしても解決せず まさか・・・と思いエスケープしたら機能した なんなのこの実装・・・ というか/?に書いとけよ・・・
577 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 03:23:31.15 ] エスケープなんか要らんけど。 具体的にどんな計算だったか書いてみろ。
578 名前:デフォルトの名無しさん [2013/01/25(金) 04:06:41.20 ] 気になるんだったらてめーで勝手に試せばええ
579 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 09:15:52.76 ] C:\>set /a (1 + 10) * 3 33 C:\>set /a (1+10)*3 33 エラーとやらにはならんな。
580 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 11:37:20.43 ] 自分で文法間違ってファビョる奴は始末におえんな
581 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 14:19:34.10 ] (set /a (1+10)*3) *3) の使い方が誤っています。 とか
582 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 20:23:51.65 ] 入れ子の解析なんて俺ならしないな
583 名前:デフォルトの名無しさん [2013/01/25(金) 23:44:41.72 ] ここレベル低いな 昨日今日始めた奴ばっかかよ
584 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 00:09:40.11 ] C:\>(set /a "(1+10)*3") 33 C:\>
585 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 00:11:42.35 ] >>583 高レベル(自称)さんちーす
586 名前:デフォルトの名無しさん [2013/01/26(土) 00:20:00.74 ] 超FAQに右往左往してる自覚はないんだな
587 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 00:32:47.78 ] 誰か困ってる人がいたみたいだけど、俺は困らないしねぇ・・・
588 名前:デフォルトの名無しさん [2013/01/26(土) 00:59:37.48 ] まぁお前は単なる冷やかしだけのゴミだけどね
589 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 01:48:01.36 ] >>584 へーこんなことできるんだ。 と低レベルな俺w
590 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 02:53:36.63 ] >>576-577 どんな間違いしたんだよ。 マヌケも反面教師として役に立つからかけやゴミカスが。
591 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 03:48:36.35 ] お前の脳みそ残念すぎ
592 名前:577 mailto:sage [2013/01/26(土) 13:10:43.53 ] >>590 なぜ俺を入れる…
593 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 13:15:21.75 ] あまりにも初心者的間違いをしでかしたので 恥ずかしくてそれを晒すことも出来ず 他人を貶める事でしか精神の安定を保てないのでしょう。
594 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 22:29:15.14 ] cls
595 名前:デフォルトの名無しさん [2013/01/27(日) 02:14:30.10 ] >>593 それ自分のことじゃん >>581 のように答えを出せない馬鹿が、自己解決した奴に絡んで精神の安定を図ってるだけ 自分が初心者以下の能力しか持ってないことを自覚しないと
596 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 02:27:40.06 ] echo off
597 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 09:22:50.87 ] >>595 恥かきにのこのこ出てくることないのに。 >>581 は>>576 が初心者以下の能力しか持ってない事を示しているわけだが。
598 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 09:42:55.38 ] >>595 581をやったの? うわぁ……
599 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 23:34:33.33 ] >>597 お前いい加減にしたらどうよ 恥の上塗りはお前だわ
600 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 00:12:42.52 ] goto :EOF
601 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 01:26:41.80 ] >>600 ええ加減にせいよ お前ら Fack
602 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 03:17:13.41 ] だからなにをしでかしたのか言ってみろよ あと577は間違いだ。謝罪する。
603 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 10:41:38.18 ] usbをパソコンに接続すると自動的に実行するやつってbatで出来ますか?
604 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 13:17:35.47 ] 何を企んでるやら
605 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 13:44:48.95 ] usbにwebサーバを入れてCMS運用です
606 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 19:37:17.27 ] autorun.inf usb
607 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 13:19:29.33 ] なるほどありがとうございます それを使ってやってみます
608 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 15:51:55.40 ] システムにパスが通ってるはずなのにコマンドが使えません コマンドプロンプトからコマンドを打つと確かに使えます batファイルからだと使えません 絶対パスで指定するしかないのですが、batファイルの中でもシステムのパスを見る方法はありませんか?
609 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 16:15:09.63 ] パスが通っていれば実行できる。実行できないのはパスが通ってないから。 キミが考えなきゃいけないのはどうして、そのbatの中ではパスが通っていないかという事。
610 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 16:56:23.42 ] 愚か者は放置で
611 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 17:03:25.88 ] cmdファイルなら使えるよ
612 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 17:10:06.62 ] また勝手に放置とかいって仕切る奴がいるよ
613 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 19:11:18.79 ] batファイルからでも使えるよ
614 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 19:25:50.69 ] >batファイルの中でもシステムのパスを見る方法はありませんか? @echo off path
615 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 19:29:08.85 ] 見えました!
616 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 20:02:54.28 ] Good Job !
617 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 20:50:17.99 ] >>608 64bit System32 SysWOW64 sysnative この辺りのキーワードが該当するような…
618 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 21:02:08.61 ] ハズレ
619 名前:デフォルトの名無しさん [2013/01/30(水) 21:10:46.23 ] すみません。 複数のフォルダ名を引数で渡して、それぞれのフォルダ内のファイルをコピーしたいのですが "コマンドの構文が違っている"とエラーが出ます。お願いします。 @echo off for /L %%i in (1,1,10) do ( if not "%%i" == ""( xcopy %%i C:\Users\%%i\ /Y ) else (exit) )
620 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 21:24:51.10 ] ちなみにrubyinstaller.org/ のexeファイルからインストールしたんですよ なぜかbatファイルのみコマンドが効かなくて
621 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 19:01:09.01 ] if a==a( コマンドの構文が違っています