拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう
過去スレ
%14 https://mevius.5ch.net/test/read.cgi/tech/1597442426/
%13 https://mevius.2ch.net/test/read.cgi/tech/1542779527/
%12 https://mevius.2ch.net/test/read.cgi/tech/1489207631/
%11 https://echo.2ch.net/test/read.cgi/tech/1424858999/
%10 https://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 https://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 https://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 https://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 https://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 https://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 https://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 https://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 https://pc11.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
https://pc11.2ch.net/test/read.cgi/tech/1178281991/
バッチファイルプログラミング 3.bat
https://pc11.2ch.net/test/read.cgi/tech/1148485555/
バッチファイルプログラミング 2.bat
https://pc8.2ch.net/test/read.cgi/tech/1104911889/
バッチファイルプログラミング質問スレ
https://pc5.2ch.net/test/read.cgi/tech/1040614686/
【.cmd】 バッチファイルスクリプト %15 【.bat】
2022/09/14(水) 20:04:01.36ID:XL8H98jz
387デフォルトの名無しさん
2023/07/07(金) 04:34:24.45ID:KFogdpBJ おやじギャグ
388デフォルトの名無しさん
2023/07/07(金) 07:40:59.89ID:T33gGQqj こうやって、自分自身と list.txt を除外しておけばよかったわ。
他にも除外したいファイルがあったらファイル名の前後に / つけて list.txt に書き足せばいい。
一応、こんな風に / で区切れば、1行に複数のファイル名が書けるよ。
あ、もちろん、ワイルドカードは使用できませんので念のため。
if not exist %t% echo /%~nx0/%t%/> %t%
他にも除外したいファイルがあったらファイル名の前後に / つけて list.txt に書き足せばいい。
一応、こんな風に / で区切れば、1行に複数のファイル名が書けるよ。
あ、もちろん、ワイルドカードは使用できませんので念のため。
if not exist %t% echo /%~nx0/%t%/> %t%
389デフォルトの名無しさん
2023/07/07(金) 10:20:29.14ID:tybFBPle 誰も使わんから大丈夫だよ
390デフォルトの名無しさん
2023/07/07(金) 10:41:17.49ID:EBn5GntH 特殊だよね
普通なら処理済のサブフォルダでも作って移動させとくよ
あと個人的に使うならattributeの属性でやるかもしれん
普通なら処理済のサブフォルダでも作って移動させとくよ
あと個人的に使うならattributeの属性でやるかもしれん
391デフォルトの名無しさん
2023/07/07(金) 11:39:17.55ID:xjbAveHj 曖昧な質問にここまで労力をかけるのか
392デフォルトの名無しさん
2023/07/07(金) 13:22:29.08ID:vTnbMP+F アホだなーって思いながら見てたが
ファイルスタンプや日付関係はpowershellでやったら一瞬で終わるから検討しなよ
ファイルスタンプや日付関係はpowershellでやったら一瞬で終わるから検討しなよ
393デフォルトの名無しさん
2023/07/07(金) 14:01:04.13ID:tybFBPle バッチファイルが糞すぎるだけでその程度なら別にvbs(wsh)でもいいけどな
394デフォルトの名無しさん
2023/07/07(金) 14:50:24.72ID:T33gGQqj このスレへ書かれたわけだから、敢えてバッチファイル縛りのマゾプレイしてるけど、
何使ってもいいのなら、一番長く使ってきて慣れている C で書くよ。高速だし。
何使ってもいいのなら、一番長く使ってきて慣れている C で書くよ。高速だし。
395デフォルトの名無しさん
2023/07/07(金) 18:37:24.24ID:GxNDHmP5 俺はC++
396デフォルトの名無しさん
2023/07/07(金) 18:42:51.15ID:KFogdpBJ >>394
確かにマゾにピッタリだよ、バッチ
確かにマゾにピッタリだよ、バッチ
397デフォルトの名無しさん
2023/07/07(金) 20:54:22.80ID:62nZLiJF 昔はまともなコンパイラなんて何万円もしたからな
バッチなんて使っているのはその世代だろ
バッチなんて使っているのはその世代だろ
398デフォルトの名無しさん
2023/07/08(土) 00:17:19.33ID:7l9oEDc+ オプションや設定で1回のバッチでは指定ソフトが1回しか起動しないようにってできないでしょうか
399デフォルトの名無しさん
2023/07/08(土) 01:48:11.75ID:8phSh46w >>386
dir > con で ? 文字になるファイル名だろ
dir > con で ? 文字になるファイル名だろ
400デフォルトの名無しさん
2023/07/08(土) 09:46:44.59ID:l5c+v8IK バッチ書いてて一番むかつくのは、0 で始まる数字(0x 以外)は 8 進数扱いになる点。
だから、%time% から分や秒を取り出して計算に使おうとして、例えば
set /a s=60-%time:~6,2%
と書いたら、08秒と 09秒の時に「無効な数字です」と怒られるので
set /a s=160-1%time:~6,2%
とか書くことになる。8進数は滅多に使わないから、それより 2 進数に対応しろと言いたい。
%time% で時間の 10 の位が 0 の時スペースになるのは、8進数になるのを防ぐためだろう。
だから、%time% から分や秒を取り出して計算に使おうとして、例えば
set /a s=60-%time:~6,2%
と書いたら、08秒と 09秒の時に「無効な数字です」と怒られるので
set /a s=160-1%time:~6,2%
とか書くことになる。8進数は滅多に使わないから、それより 2 進数に対応しろと言いたい。
%time% で時間の 10 の位が 0 の時スペースになるのは、8進数になるのを防ぐためだろう。
401デフォルトの名無しさん
2023/07/08(土) 10:18:28.62ID:iRLmrC8y いまさら何をいってもcmdは変わらん。署名が変わるだけ
ターミナルはwtが追加されたけど
ターミナルはwtが追加されたけど
402デフォルトの名無しさん
2023/07/08(土) 19:09:21.78ID:wtJKE3gc403デフォルトの名無しさん
2023/07/08(土) 19:10:18.13ID:wtJKE3gc mifes起動するのにいちいちspawnとか
そういうマゾプレーはしてなかった
そういうマゾプレーはしてなかった
404デフォルトの名無しさん
2023/07/09(日) 07:40:38.97ID:oyETgJfu 自分が使っていたのは VZ Editor だったな。
バイトやってたところのシステムは CP/M (80) で WordMaster を使ってた。
バイトやってたところのシステムは CP/M (80) で WordMaster を使ってた。
405デフォルトの名無しさん
2023/07/23(日) 13:16:59.81ID:zPqD9Olc 実現したいこと:Windowsのデバイスマネージャでデバイスの有効無効を判定した上で切り替えたい
考えたこと :devcon status [ID] で条件判定して有効無効切り替えられるのでは?
内容
devcon status [ID]
でデバイスの状態は表示される
例 有効の場合
>devcon status "USB\VID_9886&PID_0038&REV_0000&MI_00"
USB\VID_9886&PID_0038&MI_00\B&9AE5250&0&0000
Name: Astro MixAmp Pro Voice
Driver is running.
1 matching device(s) found.
例 無効の場合
devcon status "MLX4\ConnectX-3_Eth"
MLX4\CONNECTX-3_ETH\9&1A1922BF&0&01
Name: Mellanox ConnectX-3 Ethernet Adapter #2
Device is disabled.
1 matching device(s) found.
なので
Driver is running. なら devcon disable [ID] でデバイスを無効に
Device is disabled. なら devcon Enable [ID] でデバイスを有効 に切り替えたいと考えています
使い方が間違ってなければ %ERRORLEVEL% での戻り値はなさそうなので
実行した際に表示される画面等から 文字列検索かけて条件分岐みたいなことをできればいいなと思っています
別にバッチにこだわってることは無いのでもしほかに手っ取り早く実現できる方法等あったらアドバイスいただけると嬉しいです
考えたこと :devcon status [ID] で条件判定して有効無効切り替えられるのでは?
内容
devcon status [ID]
でデバイスの状態は表示される
例 有効の場合
>devcon status "USB\VID_9886&PID_0038&REV_0000&MI_00"
USB\VID_9886&PID_0038&MI_00\B&9AE5250&0&0000
Name: Astro MixAmp Pro Voice
Driver is running.
1 matching device(s) found.
例 無効の場合
devcon status "MLX4\ConnectX-3_Eth"
MLX4\CONNECTX-3_ETH\9&1A1922BF&0&01
Name: Mellanox ConnectX-3 Ethernet Adapter #2
Device is disabled.
1 matching device(s) found.
なので
Driver is running. なら devcon disable [ID] でデバイスを無効に
Device is disabled. なら devcon Enable [ID] でデバイスを有効 に切り替えたいと考えています
使い方が間違ってなければ %ERRORLEVEL% での戻り値はなさそうなので
実行した際に表示される画面等から 文字列検索かけて条件分岐みたいなことをできればいいなと思っています
別にバッチにこだわってることは無いのでもしほかに手っ取り早く実現できる方法等あったらアドバイスいただけると嬉しいです
406デフォルトの名無しさん
2023/07/23(日) 21:05:51.47ID:JLqJNtpp set id="~"
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "delims=" %%i IN ('devcon status !id!') DO (
set a=%%i
if "!a!" NEQ "!a:Driver is running=!" devcon disable !id! & goto :eof
if "!a!" NEQ "!a:Device is disabled=!" devcon enable !id! & goto :eof
)
管理者権限で実行
複数の matching の場合はどうなるか知らない
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "delims=" %%i IN ('devcon status !id!') DO (
set a=%%i
if "!a!" NEQ "!a:Driver is running=!" devcon disable !id! & goto :eof
if "!a!" NEQ "!a:Device is disabled=!" devcon enable !id! & goto :eof
)
管理者権限で実行
複数の matching の場合はどうなるか知らない
407デフォルトの名無しさん
2023/07/24(月) 14:53:52.19ID:NSMDQXn9 もぉえぇよデブコン
408デフォルトの名無しさん
2023/07/24(月) 18:12:41.71ID:BcRhQVe4 最初にデバイスマネージャを開くなら
そこで指定した方が早いんじゃね
なぜバッチ?
そこで指定した方が早いんじゃね
なぜバッチ?
409デフォルトの名無しさん
2023/07/24(月) 23:51:25.15ID:wZUfbAlM WMI(CIM)が楽かな。
powershellでもVBScriptでもwmicでもお好きなもので。
PowerShell版:
$enabledCd = 0
$disabledCd = 22
$methodName = $null
$device = Get-CimInstance -Query 'select * from Win32_PnpEntity where Name = "Fax"'
if ($device.Status -eq 'OK' -and $device.ConfigManagerErrorCode -eq $enabledCd) {
$methodName = 'Disable'
}
elseif ($device.Status -eq 'Error' -and $device.ConfigManagerErrorCode -eq $disabledCd) {
$methodName = 'Enable'
}
if (! [string]::IsNullOrEmpty($methodName)) {
$result = Invoke-CimMethod -InputObject $device -MethodName $methodName
$result
}
ワンライナー版:
powershell -c "$d=gcim -cl Win32_PnpEntity -f 'Name=''Fax'''; $s,$c=$d.Status,$d.ConfigManagerErrorCode; if($n=if($s -eq 'OK' -and $c -eq 0){'Disable'}elseif($s -eq 'Error' -and $c -eq 22){'Enable'}){$d|icim -m $n}"
powershellでもVBScriptでもwmicでもお好きなもので。
PowerShell版:
$enabledCd = 0
$disabledCd = 22
$methodName = $null
$device = Get-CimInstance -Query 'select * from Win32_PnpEntity where Name = "Fax"'
if ($device.Status -eq 'OK' -and $device.ConfigManagerErrorCode -eq $enabledCd) {
$methodName = 'Disable'
}
elseif ($device.Status -eq 'Error' -and $device.ConfigManagerErrorCode -eq $disabledCd) {
$methodName = 'Enable'
}
if (! [string]::IsNullOrEmpty($methodName)) {
$result = Invoke-CimMethod -InputObject $device -MethodName $methodName
$result
}
ワンライナー版:
powershell -c "$d=gcim -cl Win32_PnpEntity -f 'Name=''Fax'''; $s,$c=$d.Status,$d.ConfigManagerErrorCode; if($n=if($s -eq 'OK' -and $c -eq 0){'Disable'}elseif($s -eq 'Error' -and $c -eq 22){'Enable'}){$d|icim -m $n}"
410デフォルトの名無しさん
2023/07/24(月) 23:59:01.49ID:wZUfbAlM 「楽」って書いたけど別に楽ではないな。
devcon入ってない場合に入れなくて済むくらいか。
devcon入ってない場合に入れなくて済むくらいか。
411デフォルトの名無しさん
2023/07/25(火) 07:07:55.47ID:xE3c+p8T >>410
pnputilもあるでよー
pnputilもあるでよー
412デフォルトの名無しさん
2023/07/25(火) 14:01:51.30ID:ES/uzWz0 vbsで動くっぽいし、それが一番軽いかな
バッチ 行解釈が遅い
PS 起動が遅い
バッチ 行解釈が遅い
PS 起動が遅い
413デフォルトの名無しさん
2023/07/26(水) 01:41:27.08ID:HHyO4+3x414デフォルトの名無しさん
2023/08/24(木) 17:51:23.10ID:C9P8zR3M copyってコピー元ファイルがない時は標準出力にコピー先のフォルダがない場合は標準エラー出力にエラーメッセージ出るのか?
何のため…
何のため…
415デフォルトの名無しさん
2023/08/24(木) 21:56:13.39ID:W+JHQ2GG ここはコマンド七不思議を議論するスレじゃねえんだよハゲ
416デフォルトの名無しさん
2023/08/25(金) 00:42:24.04ID:6hVx8Trp シェルスレでは七不思議も話題にできるのに
417デフォルトの名無しさん
2023/08/25(金) 01:13:18.62ID:icN/kxtu ハゲじゃない人は何を議論したいのか教えて下さい
418デフォルトの名無しさん
2023/08/25(金) 12:27:27.06ID:8hrP4A7s 場合分け出来るので、使う人にとって便利だから
419デフォルトの名無しさん
2023/08/25(金) 12:27:29.53ID:8hrP4A7s 場合分け出来るので、使う人にとって便利だから
420デフォルトの名無しさん
2023/08/25(金) 13:01:08.75ID:6hVx8Trp エラーはエラーなんだから標準エラー出力に出てくれないと困る
421デフォルトの名無しさん
2023/08/25(金) 13:11:39.69ID:HBsggyAu バッチに書く場合は余計な出力はnulへリダイレクトするし
エラー検出するならerrorlevelしか見ない
終わり
エラー検出するならerrorlevelしか見ない
終わり
422デフォルトの名無しさん
2023/08/25(金) 14:15:11.86ID:WAOpDjEy でもエラーでもERRORLEVELが0以外にならないコマンドもあるんだよね。
例えば掴まれてるファイルをdelコマンドで削除しようとした場合とか。
例えば掴まれてるファイルをdelコマンドで削除しようとした場合とか。
423デフォルトの名無しさん
2023/08/25(金) 15:30:23.51ID:vih/yj+S 予期していないエラーはトラップ出来ない
当たり前の事
当たり前の事
424デフォルトの名無しさん
2023/08/26(土) 14:15:52.99ID:EQIr/PqP del してエラー出てなくて
でもファイルはまだあるみたいな
どうやったら消せるねん
でもファイルはまだあるみたいな
どうやったら消せるねん
425デフォルトの名無しさん
2023/08/31(木) 19:15:12.69ID:1WyUQh63 バッチではなくコマンドプロンプトの話なんだが、バッチを書くまでもないやってとき、
set a=
for %f in ( *.txt ) do (set a=%~nxf) & call move "%f" "%a:HOGE=HAGE%"
みたいにやるんだけど、
これやるとウィンドウタイトルが実行したcall文になってしまう
都度title cmdで戻してるけど、なんか気持ち悪いので、設定で最初からならないようにってできないだろうか
set a=
for %f in ( *.txt ) do (set a=%~nxf) & call move "%f" "%a:HOGE=HAGE%"
みたいにやるんだけど、
これやるとウィンドウタイトルが実行したcall文になってしまう
都度title cmdで戻してるけど、なんか気持ち悪いので、設定で最初からならないようにってできないだろうか
426デフォルトの名無しさん
2023/09/01(金) 07:05:11.31ID:HKoCoDlN ヘルプを見ると分かるように call はバッチを呼び出すコマンドなんだよ
バッチ以外のコマンドを呼び出すとタイトルにゴミが残るんだよ
バッチ以外のコマンドを呼び出すとタイトルにゴミが残るんだよ
427デフォルトの名無しさん
2023/09/01(金) 11:48:43.40ID:v7f2MrOL set a=
for %f in ( *HOGE*.txt ) do (set a=%~nxf) & cmd/c move "%f" "%a:HOGE=HAGE%"
for %f in ( *HOGE*.txt ) do (set a=%~nxf) & cmd/c move "%f" "%a:HOGE=HAGE%"
428デフォルトの名無しさん
2023/09/01(金) 12:03:20.71ID:haHsElfO 俺からしたら書くまでもないやを超えてる長さに見える
429デフォルトの名無しさん
2023/09/01(金) 14:00:21.38ID:HKoCoDlN call を cmd /c にするといいのか
430デフォルトの名無しさん
2023/09/01(金) 14:16:49.32ID:8Q6o7DlX cmd /k
431デフォルトの名無しさん
2023/09/19(火) 16:40:50.05ID:w0AoFkn5 質問スレからこのスレを誘導してもらいました
誰かわかる方いたらお願いします
https://i.imgur.com/rKbomtc.png
画像の様な物を作りたいです
フォルダAとその下のa.b.cまではは既に作成されています
後から1.2.3の空フォルダ階層をまとめて追加したい状態です
コマンドプロンプトやバッチ?で簡単に作ることはできませんか?
誰かわかる方いたらお願いします
https://i.imgur.com/rKbomtc.png
画像の様な物を作りたいです
フォルダAとその下のa.b.cまではは既に作成されています
後から1.2.3の空フォルダ階層をまとめて追加したい状態です
コマンドプロンプトやバッチ?で簡単に作ることはできませんか?
432デフォルトの名無しさん
2023/09/19(火) 17:51:31.66ID:nN7HbMfx 単に1.2.3のテンプレフォルダ&ファイルを用意して
対象フォルダにコピーするだけに聞こえるけど
コピー先となるフォルダが大量にあるから手動コピーが面倒とかそういう話?
対象フォルダにコピーするだけに聞こえるけど
コピー先となるフォルダが大量にあるから手動コピーが面倒とかそういう話?
433デフォルトの名無しさん
2023/09/19(火) 18:38:51.86ID:/gzRoJ4w434デフォルトの名無しさん
2023/09/19(火) 20:18:27.57ID:nN7HbMfx for使ってコピー先を読み込みつつxcopyでどう。
参考:https://www.javadrive.jp/command/bat/index9.html
例えばAの下に下記バッチ置いて実行
for /d %%a in (*) do (
xcopy コピー元 %%a
)
関係ないフォルダとか色々混ざってるなら
文字列でフィルタするなり事前にテキストで
リスト作るなりした方がいいだろうけど。
参考:https://www.javadrive.jp/command/bat/index9.html
例えばAの下に下記バッチ置いて実行
for /d %%a in (*) do (
xcopy コピー元 %%a
)
関係ないフォルダとか色々混ざってるなら
文字列でフィルタするなり事前にテキストで
リスト作るなりした方がいいだろうけど。
435デフォルトの名無しさん
2023/09/19(火) 20:19:07.60ID:nN7HbMfx for使ってコピー先を読み込みつつxcopyでどう。
参考:https://www.javadrive.jp/command/bat/index9.html
例えばAの下に下記バッチ置いて実行
リスト作るなりした方がいいだろうけど。
for /d %%a in (*) do (
xcopy コピー元 %%a
)
関係ないフォルダとか色々混ざってるなら
文字列でフィルタするなり事前にテキストでリスト作っておくなり。
参考:https://www.javadrive.jp/command/bat/index9.html
例えばAの下に下記バッチ置いて実行
リスト作るなりした方がいいだろうけど。
for /d %%a in (*) do (
xcopy コピー元 %%a
)
関係ないフォルダとか色々混ざってるなら
文字列でフィルタするなり事前にテキストでリスト作っておくなり。
436デフォルトの名無しさん
2023/09/19(火) 20:40:00.00ID:+wkqTEPn >>431
何がしたいのかいまいちわかってないけど空フォルダ作りたいだけならこう
フォルダAをbatにD&Dして使う
cd "%~1"
for /d %%i in (*) do (
mkdir "%%~i\1"
mkdir "%%~i\2"
mkdir "%%~i\3"
)
pause
何がしたいのかいまいちわかってないけど空フォルダ作りたいだけならこう
フォルダAをbatにD&Dして使う
cd "%~1"
for /d %%i in (*) do (
mkdir "%%~i\1"
mkdir "%%~i\2"
mkdir "%%~i\3"
)
pause
437デフォルトの名無しさん
2023/09/19(火) 22:27:32.71ID:gURMcAfl うおおおおおおお!!!!
できましたありがとうございます!
お二人のおかげです!
できましたありがとうございます!
お二人のおかげです!
438デフォルトの名無しさん
2023/09/20(水) 00:13:50.00ID:YkzHQ7up xcopy は知らない。
普通は、robocopy でしょ?
普通は、robocopy でしょ?
439デフォルトの名無しさん
2023/09/20(水) 02:10:11.18ID:vY1uP1tv そんなのMS-DOSで使えないじゃん
440デフォルトの名無しさん
2023/09/20(水) 07:45:17.50ID:2uRYZGK4 それな
441デフォルトの名無しさん
2023/09/21(木) 07:02:31.48ID:VtU3IO45 普通のwin10で utf8のファイルに fc を使うと派手に文字化けします
文字エンコードなどはどこで指定すればよいのでしょうか?
文字エンコードなどはどこで指定すればよいのでしょうか?
442デフォルトの名無しさん
2023/09/21(木) 16:42:57.64ID:2fMT8T96 chcp 932
443デフォルトの名無しさん
2023/10/03(火) 21:23:54.04ID:Z09KwkqG 神様教えて下さい
xcopy /D:[MM]/[DD]/[YY]
で指定した日付以降のファイルをコピーできるけど
x日前より新しいファイルのみコピーしたい時の方法はない?
xcopy /D:[MM]/[DD]/[YY]
で指定した日付以降のファイルをコピーできるけど
x日前より新しいファイルのみコピーしたい時の方法はない?
444デフォルトの名無しさん
2023/10/04(水) 11:25:24.03ID:Ru3hWGvF Robocopy の /MAXAGE
445デフォルトの名無しさん
2023/10/04(水) 12:20:07.48ID:Wr02smam 5chなんでこんなに重いん?いつまでこの重いの続くん?
446デフォルトの名無しさん
2023/10/04(水) 12:29:43.90ID:UHUx/6V1 なんで俺に聞くの?
447デフォルトの名無しさん
2023/10/04(水) 13:11:28.12ID:Wr02smam いや、お前には聞いてない
448デフォルトの名無しさん
2023/10/06(金) 09:10:25.11ID:u9U/aciQ 5ch攻撃してる人が飽きるまで。
449デフォルトの名無しさん
2023/10/09(月) 15:26:51.31ID:gPLHWilL 神様教えて下さい
dir のオプションで/b /s 付けた時に
フルパス名が辞書順になるオプションってどれ?
/on /ogとかあるけど
思うようにならない
dir のオプションで/b /s 付けた時に
フルパス名が辞書順になるオプションってどれ?
/on /ogとかあるけど
思うようにならない
450デフォルトの名無しさん
2023/10/09(月) 17:55:27.25ID:416rm9Ab /q
451デフォルトの名無しさん
2023/10/10(火) 11:13:06.14ID:GmlcHfbX 「VBScript」は非推奨に、将来のWindowsリリースで削除
https://forest.watch.impress.co.jp/docs/news/1537619.html
batファイルはどうなる?
https://forest.watch.impress.co.jp/docs/news/1537619.html
batファイルはどうなる?
452デフォルトの名無しさん
2023/10/10(火) 11:26:18.76ID:cUy975D5 >>451
糞過ぎる
糞過ぎる
453デフォルトの名無しさん
2023/10/10(火) 11:37:38.54ID:l0kLdmnh JScriptというかWindowsScriptHostは生き残るのか?
454デフォルトの名無しさん
2023/10/10(火) 18:15:49.98ID:dUGfQnTA なんで5chこんなに重いん?この重いのいつまで続くん?
455デフォルトの名無しさん
2023/10/11(水) 07:20:10.03ID:x54NWWVS456デフォルトの名無しさん
2023/10/11(水) 08:26:32.52ID:mMAmsq6k ネットは心の鏡
お前の心が重いのだ
お前の心が重いのだ
457デフォルトの名無しさん
2023/10/11(水) 13:00:48.19ID:yI6tEEU8 textファイル1に
a
b
c
d
が入ってて
textファイル2に
1
2
3
4
が入ってて
連結して
a1
b2
c3
d4
にしたいけど
dosコマンドだけでは無理?
a
b
c
d
が入ってて
textファイル2に
1
2
3
4
が入ってて
連結して
a1
b2
c3
d4
にしたいけど
dosコマンドだけでは無理?
458デフォルトの名無しさん
2023/10/12(木) 15:02:33.47ID:DS7FO2PL >>457
無理ではないがコマンドプロンプト開いて1行のコマンドで書くのはとても面倒だからバッチファイル書いたほうがいい
無理ではないがコマンドプロンプト開いて1行のコマンドで書くのはとても面倒だからバッチファイル書いたほうがいい
459デフォルトの名無しさん
2023/10/12(木) 21:58:11.30ID:ZXm8+EHB powershell -c "gc textファイル1, textファイル2 | group readcount | foreach{$_.group -join ''}"
a1
b2
c3
d4
a1
b2
c3
d4
460デフォルトの名無しさん
2023/10/13(金) 11:28:13.45ID:eHigHg14461デフォルトの名無しさん
2023/10/13(金) 17:19:46.92ID:5yGgcXlN 「''」と「"」を見間違えてるのでは
462デフォルトの名無しさん
2023/10/29(日) 22:58:43.01ID:4fxrkRUI 環境変数を;区切りで改行して出力したくて
for /F "delims=;" %i in ("%PATH%") do echo %i
としたのですが最初の一つしか出力されません
何がダメなんでしょうか...
for /F "delims=;" %i in ("%PATH%") do echo %i
としたのですが最初の一つしか出力されません
何がダメなんでしょうか...
463デフォルトの名無しさん
2023/10/30(月) 00:54:06.32ID:S4fhwBsv ダブルクォーテーションで囲まれた"%PATH%"が1つの引数としてForに渡されて1つ目の区切り文字に達するまでを出力してるからそうなる
1つずつ取り出したいならダブルクォーテーションを消せば良いがそれだと半角スペースも区切り文字に判定されるから
簡単にやろうと思ったらまず半角スペースを別の文字に置換してからダブルクォーテーション無しで渡してその後半角スペースを元に戻すとかかな
1つずつ取り出したいならダブルクォーテーションを消せば良いがそれだと半角スペースも区切り文字に判定されるから
簡単にやろうと思ったらまず半角スペースを別の文字に置換してからダブルクォーテーション無しで渡してその後半角スペースを元に戻すとかかな
464デフォルトの名無しさん
2023/10/30(月) 01:46:36.18ID:dhg2pdyL "%PATH%"が一行なのでforループも1回しか繰り返さないってだけ
465デフォルトの名無しさん
2023/10/30(月) 02:13:56.37ID:dhg2pdyL delimsの区切り記号指定は、
for /F "tokens=1-3 delims=;" %i in ("%PATH%") do echo %i,%j,%k
とか1行の中で複数項目に分ける場合に使う
区切り記号でループさせることは不可能
for /F "tokens=1-3 delims=;" %i in ("%PATH%") do echo %i,%j,%k
とか1行の中で複数項目に分ける場合に使う
区切り記号でループさせることは不可能
466デフォルトの名無しさん
2023/10/30(月) 03:27:22.35ID:dhg2pdyL 興が乗ったので作ってみた
@echo off
SETLOCAL EnableDelayedExpansion
SET LF=^
SET splitted_path=%PATH:;=!LF!%
for /f "tokens=*" %%i in ("!splitted_path!") do echo,%%i
@echo off
SETLOCAL EnableDelayedExpansion
SET LF=^
SET splitted_path=%PATH:;=!LF!%
for /f "tokens=*" %%i in ("!splitted_path!") do echo,%%i
467デフォルトの名無しさん
2023/10/30(月) 06:58:07.09ID:EuHHvGeq バッチと関係ないけどpath変数のフォルダ名に
;文字が入ってたらwindowsの動作はどうなるんだろう
"で囲めばいいだけなのかな
;文字が入ってたらwindowsの動作はどうなるんだろう
"で囲めばいいだけなのかな
468デフォルトの名無しさん
2023/10/30(月) 13:19:36.99ID:dhg2pdyL for文も不要だった
@echo off
setlocal EnableDelayedExpansion
for /f "delims=N" %%i in ('cmd /u /c echo 不') do set CR=%%i
set LF=^
SET splitted_path=%PATH:;=!CR!!LF!%
echo,!splitted_path!
@echo off
setlocal EnableDelayedExpansion
for /f "delims=N" %%i in ('cmd /u /c echo 不') do set CR=%%i
set LF=^
SET splitted_path=%PATH:;=!CR!!LF!%
echo,!splitted_path!
469デフォルトの名無しさん
2023/10/30(月) 23:23:37.40ID:oqTBGQIx 皆さんありがとうございます参考になりました。
気軽に使いたかったのでこんな感じで雑に実現しました
@echo off
for %%i in ("%PATH:;=";"%") do echo %%i
pause
毎回環境変数ウィンドウ開くの面倒だからcliで見やすく確認できないかなーと気軽に始めたのですがbatスクリプト難しいですね
遅延展開とか初めて聞きましたw
気軽に使いたかったのでこんな感じで雑に実現しました
@echo off
for %%i in ("%PATH:;=";"%") do echo %%i
pause
毎回環境変数ウィンドウ開くの面倒だからcliで見やすく確認できないかなーと気軽に始めたのですがbatスクリプト難しいですね
遅延展開とか初めて聞きましたw
470デフォルトの名無しさん
2023/10/31(火) 06:54:11.36ID:9EMrUdB9 遅延にしたら!が変わる
!があると^も変わる
!があると^も変わる
471デフォルトの名無しさん
2023/10/31(火) 07:18:54.11ID:1/1CCAX6 バッチは不毛すぎる
使うのは最小限に留めろ
使うのは最小限に留めろ
472デフォルトの名無しさん
2023/10/31(火) 07:44:42.03ID:/7M4GG46 頑張りすぎると無毛になる
473デフォルトの名無しさん
2023/10/31(火) 08:59:44.07ID:5Lja4y81 おかえり
474デフォルトの名無しさん
2023/11/01(水) 10:36:13.57ID:QIr7Aj5s バッチファイルは縛りプレイが好きな人にしか向かないよ
475デフォルトの名無しさん
2023/11/12(日) 10:36:55.29ID:8jJHTm3/ batファイルの処理が終わったらスマホに何らかの通知を送りたいんですが何かいい方法は無いですか?
476デフォルトの名無しさん
2023/11/12(日) 13:00:47.64ID:9doZQWI1 SMS送信するWebAPI実行
477デフォルトの名無しさん
2023/11/12(日) 18:58:13.28ID:aZ7/2ZLa NET SEND
478デフォルトの名無しさん
2023/11/19(日) 15:27:06.49ID:tEMsHOKq479デフォルトの名無しさん
2023/12/11(月) 17:33:41.74ID:DuarkpA3 習作でlog1.txtに格納されている文字列を1行ずつlog2.txtの中に存在しているかチェックしたいのですが、
@echo off
for /f %%a in (log1.txt) do (
set line=%%a
find "%%a" log2.txt
if %errorlevel% == "0" (
echo OK >> kekka.txt
) else (
echo NG >> kekka.txt
)
)
findで返ってくる値が0に固定されてしまい、
判定を上手く行うことが出来ずにいます
稚拙な質問でお恥ずかしいのですがどのように修正すれば良いでしょうか
@echo off
for /f %%a in (log1.txt) do (
set line=%%a
find "%%a" log2.txt
if %errorlevel% == "0" (
echo OK >> kekka.txt
) else (
echo NG >> kekka.txt
)
)
findで返ってくる値が0に固定されてしまい、
判定を上手く行うことが出来ずにいます
稚拙な質問でお恥ずかしいのですがどのように修正すれば良いでしょうか
480デフォルトの名無しさん
2023/12/11(月) 21:12:00.54ID:WKo0W+M9 >>479
お前がなぜレスを貰えないのかchatgptに聞いてこい
お前がなぜレスを貰えないのかchatgptに聞いてこい
481デフォルトの名無しさん
2023/12/11(月) 21:23:41.62ID:ZQU2Csd1 >>479
いちばん手っ取り早いのはsetlocal enabledelayedexpansionを使うこと
@echo off
setlocal enabledelayedexpansion
for /f %%a in (log1.txt) do (
find "%%a" log2.txt >nul 2>nul
if "!errorlevel!" == "0" (echo OK) else (echo NG)
)
endlocal
遅延展開で調べてみて
ただforにdelimsとかtokensの指定ないけどそれは問題ない?
いちばん手っ取り早いのはsetlocal enabledelayedexpansionを使うこと
@echo off
setlocal enabledelayedexpansion
for /f %%a in (log1.txt) do (
find "%%a" log2.txt >nul 2>nul
if "!errorlevel!" == "0" (echo OK) else (echo NG)
)
endlocal
遅延展開で調べてみて
ただforにdelimsとかtokensの指定ないけどそれは問題ない?
482デフォルトの名無しさん
2023/12/11(月) 22:30:44.45ID:TXSKL9RJ for文を初めて使ったものでスレ汚し紛いな質問で申し訳ないです
setlocal enabledelayedexpansionを利用して手直しし、
希望通りの結果を出力できました。ありがとうございました
setlocal enabledelayedexpansionを利用して手直しし、
希望通りの結果を出力できました。ありがとうございました
483デフォルトの名無しさん
2023/12/12(火) 18:16:58.21ID:e+gu1Rew こんな感じでperl起動するとして、このときwindows terminal(設定によってはコマンドプロンプト)の新しいウィンドウが開かれてperlのコードが実行されますが、既に開いているwindows terminal内で新しいタブを開いて実行できないでしょうか?
perl "aaa.txt"
exit /B
perl "aaa.txt"
exit /B
484デフォルトの名無しさん
2023/12/12(火) 18:55:34.45ID:e+gu1Rew 書き忘れました
バッチファイルの実行はコマンドプロンプト内ではなく、バッチファイルのアイコンをダブルクリック(おそらくエクスプローラーで実行)することを前提にしてます
バッチファイルの実行はコマンドプロンプト内ではなく、バッチファイルのアイコンをダブルクリック(おそらくエクスプローラーで実行)することを前提にしてます
485デフォルトの名無しさん
2023/12/12(火) 20:27:32.49ID:I4UWTUvH486デフォルトの名無しさん
2023/12/17(日) 11:53:39.09ID:zJzmsCBlレスを投稿する
ニュース
- 日本の立場説明へ…外務省局長が北京到着 “台湾有事”首相答弁に中国反発 ★4 [煮卵★]
- 橋下徹氏「この喧嘩は日本の完敗」 台湾有事答弁めぐる外務省局長訪中で指摘「中国に怒られてご説明に伺った日本と見られる」 [muffin★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 【高市売り】ドスパラ3ヶ月前にも関わらずintel14世代のCPUを売る [818181802]
- 「高市やめろデモ」なぜか石破やめろデモの時は大々的に報道していた日本メディアがだんまり [165981677]
- 杉浦綾乃板って改名したほうがいいよな
- 高市コイン、155円突破wwwwwwwwww [246620176]
- ホヨバゲーの日本版サービス終了をチラつかせるだけで日本人は中国に降伏せざるを得ないという現実 [523957489]
- 高市早苗の中国問題、「オーバーツーリズムが解消されてウザい中国人が消えるから日本の勝ち」という風潮になってしまう [562983582]
