拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう
過去スレ
%13 http://mevius.2ch.net/test/read.cgi/tech/1542779527/
%12 http://mevius.2ch.net/test/read.cgi/tech/1489207631/
%11 http://echo.2ch.net/test/read.cgi/tech/1424858999/
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc11.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1178281991/
バッチファイルプログラミング 3.bat
http://pc11.2ch.net/test/read.cgi/tech/1148485555/
バッチファイルプログラミング 2.bat
http://pc8.2ch.net/test/read.cgi/tech/1104911889/
バッチファイルプログラミング質問スレ
http://pc5.2ch.net/test/read.cgi/tech/1040614686/
【.cmd】 バッチファイルスクリプト %14 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
2020/08/15(土) 07:00:26.64ID:f3kW5kCx
2020/08/15(土) 07:38:40.18ID:sYOUYcTP
Swiss File Knife
https://www.freewarefiles.com/Swiss-File-Knife_program_39649.html
http://stahlworks.com/dev/swiss-file-knife.html
ちょっと試したけど使い勝手が良い
https://www.freewarefiles.com/Swiss-File-Knife_program_39649.html
http://stahlworks.com/dev/swiss-file-knife.html
ちょっと試したけど使い勝手が良い
2020/08/15(土) 16:03:49.79ID:YDp7CJXQ
startコマンドでコマンドを実行がエラーになった時にerrorlevelで戻り値確認すると9020になっている。
/wait付けても付けなくても同じ。
これが正しいのかよくわからん
/wait付けても付けなくても同じ。
これが正しいのかよくわからん
2020/08/15(土) 23:16:48.97ID:vVgO0BR5
2020/08/16(日) 07:47:08.35ID:A8ymKSpp
そういう結果にはならんなー
(verify offはerrorlevelを0にセット、verify xxxはerrorlevelを1にセットする)
C:\>verify off
C:\>start xxx
ファイル xxx が見つかりません。
C:\>echo %errorlevel%
9059
C:\>verify off
C:\>start /wait xxx
ファイル xxx が見つかりません。
C:\>echo %errorlevel%
9059
C:\>verify off
C:\>start cmd /c verify xxx
C:\>echo %errorlevel%
0
C:\>verify off
C:\>start /wait cmd /c verify xxx
C:\>echo %errorlevel%
1
startやstart /wait自体が失敗したら9059
startが成功したら0
start /waitが成功したら、実行したコマンドの戻り値を返す
(verify offはerrorlevelを0にセット、verify xxxはerrorlevelを1にセットする)
C:\>verify off
C:\>start xxx
ファイル xxx が見つかりません。
C:\>echo %errorlevel%
9059
C:\>verify off
C:\>start /wait xxx
ファイル xxx が見つかりません。
C:\>echo %errorlevel%
9059
C:\>verify off
C:\>start cmd /c verify xxx
C:\>echo %errorlevel%
0
C:\>verify off
C:\>start /wait cmd /c verify xxx
C:\>echo %errorlevel%
1
startやstart /wait自体が失敗したら9059
startが成功したら0
start /waitが成功したら、実行したコマンドの戻り値を返す
63
2020/08/16(日) 09:57:56.96ID:+xZknRBW >>5
そうそうそう。
9020と9059の違いはありますが、
起動か失敗するコマンドは独自に実行するとOSから別のエラーコード(起動失敗の直接の原因となったエラー)が返ってきますが、
それがstartコマンドから実行すると(自分の場合は)9020になって本来のエラーコードがわからないって事です。
そうそうそう。
9020と9059の違いはありますが、
起動か失敗するコマンドは独自に実行するとOSから別のエラーコード(起動失敗の直接の原因となったエラー)が返ってきますが、
それがstartコマンドから実行すると(自分の場合は)9020になって本来のエラーコードがわからないって事です。
2020/08/16(日) 10:40:25.72ID:O0yhKyc9
start /wait
cmd /k
使い方
cmd /k
使い方
2020/08/16(日) 10:54:36.31ID:7Iew54RL
コマンドは何よ?
2020/08/16(日) 18:45:13.11ID:5bX3HnFK
話変わるけど、括弧で結果が変わるのはなんで?
>color 00 & echo %errorlevel%
0
>(color 00) & echo %errorlevel%
1
>color 00 & echo %errorlevel%
0
>(color 00) & echo %errorlevel%
1
10デフォルトの名無しさん
2020/08/16(日) 19:20:31.36ID:Nztll5gc2020/08/16(日) 19:28:17.47ID:5bX3HnFK
2020/08/16(日) 19:29:38.18ID:vTgpRfn/
2度目のはerrorlevelを0にして試してないのでは?
&でつなぐと forの中の %変数% と同じで反映されない
試してないけど遅延展開有効にして!errorlevel!とすれば多分大丈夫
()は関係無い
&でつなぐと forの中の %変数% と同じで反映されない
試してないけど遅延展開有効にして!errorlevel!とすれば多分大丈夫
()は関係無い
2020/08/16(日) 19:36:49.54ID:5bX3HnFK
あらかじめ set errorlevel=0 にすると
両方とも 0 になる。
両方とも 0 になる。
2020/08/16(日) 19:42:36.63ID:vTgpRfn/
set errolevel=値 したらsetした環境変数が優先されerrorlevel自動代入の機能は死ぬ
set errolevel=
で消せば元に戻る
set errolevel=
で消せば元に戻る
2020/08/16(日) 19:51:04.53ID:5bX3HnFK
あらかじめ set errorlevel= にすると
>>9 のようになる
>>9 のようになる
2020/08/16(日) 20:09:12.98ID:vTgpRfn/
pushd .
color 00 & echo %errorlevel%
pushd .
(color 00) & echo %errorlevel%
てしてみ?両方0になるから
2回目の1は1回目のエラーが表示されてる
%変数%の展開のタイミングは構文の評価時なのでそうなる
color 00 & echo %errorlevel%
pushd .
(color 00) & echo %errorlevel%
てしてみ?両方0になるから
2回目の1は1回目のエラーが表示されてる
%変数%の展開のタイミングは構文の評価時なのでそうなる
2020/08/16(日) 20:17:16.41ID:A8ymKSpp
>color 00 & echo %errorlevel%
これはcolor 00 & echo %errorlevel%を実行する直前のerrorlevelが表示される。
color 00の実行結果を知りたければ&でつながずに2回に分けて実行しなければならない。
>color 00
>echo %errorlevel%
あるいはcmd /v:onで遅延展開を有効にしてから
>color 00 & echo !errorlevel!
これはcolor 00 & echo %errorlevel%を実行する直前のerrorlevelが表示される。
color 00の実行結果を知りたければ&でつながずに2回に分けて実行しなければならない。
>color 00
>echo %errorlevel%
あるいはcmd /v:onで遅延展開を有効にしてから
>color 00 & echo !errorlevel!
2020/08/16(日) 20:29:56.33ID:5bX3HnFK
>>16 ありがとう。括弧は無関係ですね
set errorlevel= だと初期化されないのか
set errorlevel= だと初期化されないのか
2020/08/16(日) 20:39:32.90ID:vTgpRfn/
この「構文評価時に展開される」というロジックを使って環境変数を配列のように使えたりする
for /l %%i in (1,1,5) do set A%%i=%%i
for /l %%i in (1,1,5) do echo %%A%%i%%
for /l %%i in (1,1,5) do call echo %%A%%i%%
pause
for /l %%i in (1,1,5) do set A%%i=%%i
for /l %%i in (1,1,5) do echo %%A%%i%%
for /l %%i in (1,1,5) do call echo %%A%%i%%
pause
2020/08/16(日) 21:37:34.66ID:vTgpRfn/
set errorlevel=値 とsetした時とそうでない時の %errorlevel% は別物
%time% %date% も同じく
ビルトイン特殊環境変数 みたいな感じ
参照出来るけど環境変数としては存在しない
だから set e とか set d とかしても表示されない。環境変数ではないから
set t は tmp temp が表示されるはず
これらは set で同名の環境変数名を設定するとそちらが優先されビルトインの方は参照出来なくなる
環境変数に設定した場合は環境変数を消去するとビルトインの方を参照する
set time=0
echo %time%
set time=
echo %time%
echo はONです。とはならない
%time% %date% も同じく
ビルトイン特殊環境変数 みたいな感じ
参照出来るけど環境変数としては存在しない
だから set e とか set d とかしても表示されない。環境変数ではないから
set t は tmp temp が表示されるはず
これらは set で同名の環境変数名を設定するとそちらが優先されビルトインの方は参照出来なくなる
環境変数に設定した場合は環境変数を消去するとビルトインの方を参照する
set time=0
echo %time%
set time=
echo %time%
echo はONです。とはならない
2020/08/17(月) 07:53:31.79ID:hOPUdkb9
%cd% も
他に何かあったっけ?
他に何かあったっけ?
2020/08/17(月) 08:21:28.65ID:hOPUdkb9
cd
cmdcmdline
cmdextversion
date
errorlevel
highestnumanodenumber
random
time
cmdcmdline
cmdextversion
date
errorlevel
highestnumanodenumber
random
time
23デフォルトの名無しさん
2020/08/17(月) 11:49:09.93ID:0uhm6UU6 if errorlevel 0 goto err
2020/08/17(月) 12:25:18.44ID:Md0hBahZ
後藤は極力使わない
2020/08/17(月) 18:56:48.99ID:hmt9CL+F
2020/08/17(月) 19:02:26.61ID:hmt9CL+F
echo %=ExitCode%
2020/08/17(月) 19:16:51.03ID:hmt9CL+F
ダメだな exit にしか使えんな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 農林水産省「春頃にはコメ価格落ち着くのでは」新米の取引価格、過去最高を更新。 [256556981]
