1 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 20:04:01.36 ID:XL8H98jz.net] 拡張子が .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/
406 名前:デフォルトの名無しさん mailto:sage [2023/07/24(月) 14:53:52.19 ID:NSMDQXn9.net] もぉえぇよデブコン
407 名前:デフォルトの名無しさん mailto:sage [2023/07/24(月) 18:12:41.71 ID:BcRhQVe4.net] 最初にデバイスマネージャを開くなら そこで指定した方が早いんじゃね なぜバッチ?
408 名前:デフォルトの名無しさん mailto:sage [2023/07/24(月) 23:51:25.15 ID:wZUfbAlM.net] 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}"
409 名前:デフォルトの名無しさん mailto:sage [2023/07/24(月) 23:59:01.49 ID:wZUfbAlM.net] 「楽」って書いたけど別に楽ではないな。 devcon入ってない場合に入れなくて済むくらいか。
410 名前:デフォルトの名無しさん mailto:sage [2023/07/25(火) 07:07:55.47 ID:xE3c+p8T.net] >>409 pnputilもあるでよー
411 名前:デフォルトの名無しさん mailto:sage [2023/07/25(火) 14:01:51.30 ID:ES/uzWz0.net] vbsで動くっぽいし、それが一番軽いかな バッチ 行解釈が遅い PS 起動が遅い
412 名前:デフォルトの名無しさん mailto:sage [2023/07/26(水) 01:41:27.08 ID:HHyO4+3x.net] >>405 >>408 ありがとうございます
413 名前:デフォルトの名無しさん [2023/08/24(木) 17:51:23.10 ID:C9P8zR3M.net] copyってコピー元ファイルがない時は標準出力にコピー先のフォルダがない場合は標準エラー出力にエラーメッセージ出るのか? 何のため…
414 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 21:56:13.39 ID:W+JHQ2GG.net] ここはコマンド七不思議を議論するスレじゃねえんだよハゲ
415 名前:デフォルトの名無しさん [2023/08/25(金) 00:42:24.04 ID:6hVx8Trp.net] シェルスレでは七不思議も話題にできるのに
416 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 01:13:18.62 ID:icN/kxtu.net] ハゲじゃない人は何を議論したいのか教えて下さい
417 名前:デフォルトの名無しさん [2023/08/25(金) 12:27:27.06 ID:8hrP4A7s.net] 場合分け出来るので、使う人にとって便利だから
418 名前:デフォルトの名無しさん [2023/08/25(金) 12:27:29.53 ID:8hrP4A7s.net] 場合分け出来るので、使う人にとって便利だから
419 名前:デフォルトの名無しさん [2023/08/25(金) 13:01:08.75 ID:6hVx8Trp.net] エラーはエラーなんだから標準エラー出力に出てくれないと困る
420 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 13:11:39.69 ID:HBsggyAu.net] バッチに書く場合は余計な出力はnulへリダイレクトするし エラー検出するならerrorlevelしか見ない 終わり
421 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 14:15:11.86 ID:WAOpDjEy.net] でもエラーでもERRORLEVELが0以外にならないコマンドもあるんだよね。 例えば掴まれてるファイルをdelコマンドで削除しようとした場合とか。
422 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 15:30:23.51 ID:vih/yj+S.net] 予期していないエラーはトラップ出来ない 当たり前の事
423 名前:デフォルトの名無しさん [2023/08/26(土) 14:15:52.99 ID:EQIr/PqP.net] del してエラー出てなくて でもファイルはまだあるみたいな どうやったら消せるねん
424 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 19:15:12.69 ID:1WyUQh63.net] バッチではなくコマンドプロンプトの話なんだが、バッチを書くまでもないやってとき、 set a= for %f in ( *.txt ) do (set a=%~nxf) & call move "%f" "%a:HOGE=HAGE%" みたいにやるんだけど、 これやるとウィンドウタイトルが実行したcall文になってしまう 都度title cmdで戻してるけど、なんか気持ち悪いので、設定で最初からならないようにってできないだろうか
425 名前:デフォルトの名無しさん [2023/09/01(金) 07:05:11.31 ID:HKoCoDlN.net] ヘルプを見ると分かるように call はバッチを呼び出すコマンドなんだよ バッチ以外のコマンドを呼び出すとタイトルにゴミが残るんだよ
426 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 11:48:43.40 ID:v7f2MrOL.net] set a= for %f in ( *HOGE*.txt ) do (set a=%~nxf) & cmd/c move "%f" "%a:HOGE=HAGE%"
427 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 12:03:20.71 ID:haHsElfO.net] 俺からしたら書くまでもないやを超えてる長さに見える
428 名前:デフォルトの名無しさん [2023/09/01(金) 14:00:21.38 ID:HKoCoDlN.net] call を cmd /c にするといいのか
429 名前:デフォルトの名無しさん [2023/09/01(金) 14:16:49.32 ID:8Q6o7DlX.net] cmd /k
430 名前:デフォルトの名無しさん [2023/09/19(火) 16:40:50.05 ID:w0AoFkn5.net] 質問スレからこのスレを誘導してもらいました 誰かわかる方いたらお願いします https://i.imgur.com/rKbomtc.png 画像の様な物を作りたいです フォルダAとその下のa.b.cまではは既に作成されています 後から1.2.3の空フォルダ階層をまとめて追加したい状態です コマンドプロンプトやバッチ?で簡単に作ることはできませんか?
431 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 17:51:31.66 ID:nN7HbMfx.net] 単に1.2.3のテンプレフォルダ&ファイルを用意して 対象フォルダにコピーするだけに聞こえるけど コピー先となるフォルダが大量にあるから手動コピーが面倒とかそういう話?
432 名前:デフォルトの名無しさん [2023/09/19(火) 18:38:51.86 ID:/gzRoJ4w.net] >>431 はい 言われた通りに手動でやっていたんですが 仰る通りabc…の量が実際にはzで終わらない数百レベルなのです
433 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 20:18:27.57 ID:nN7HbMfx.net] for使ってコピー先を読み込みつつxcopyでどう。 参考:https://www.javadrive.jp/command/bat/index9.html 例えばAの下に下記バッチ置いて実行 for /d %%a in (*) do ( xcopy コピー元 %%a ) 関係ないフォルダとか色々混ざってるなら 文字列でフィルタするなり事前にテキストで リスト作るなりした方がいいだろうけど。
434 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 20:19:07.60 ID:nN7HbMfx.net] for使ってコピー先を読み込みつつxcopyでどう。 参考:https://www.javadrive.jp/command/bat/index9.html 例えばAの下に下記バッチ置いて実行 リスト作るなりした方がいいだろうけど。 for /d %%a in (*) do ( xcopy コピー元 %%a ) 関係ないフォルダとか色々混ざってるなら 文字列でフィルタするなり事前にテキストでリスト作っておくなり。
435 名前:デフォルトの名無しさん mailto:sage [2023/09/19(火) 20:40:00.00 ID:+wkqTEPn.net] >>430 何がしたいのかいまいちわかってないけど空フォルダ作りたいだけならこう フォルダAをbatにD&Dして使う cd "%~1" for /d %%i in (*) do ( mkdir "%%~i\1" mkdir "%%~i\2" mkdir "%%~i\3" ) pause
436 名前:デフォルトの名無しさん [2023/09/19(火) 22:27:32.71 ID:gURMcAfl.net] うおおおおおおお!!!! できましたありがとうございます! お二人のおかげです!
437 名前:デフォルトの名無しさん mailto:sage [2023/09/20(水) 00:13:50.00 ID:YkzHQ7up.net] xcopy は知らない。 普通は、robocopy でしょ?
438 名前:デフォルトの名無しさん mailto:sage [2023/09/20(水) 02:10:11.18 ID:vY1uP1tv.net] そんなのMS-DOSで使えないじゃん
439 名前:デフォルトの名無しさん mailto:sage [2023/09/20(水) 07:45:17.50 ID:2uRYZGK4.net] それな
440 名前:デフォルトの名無しさん [2023/09/21(木) 07:02:31.48 ID:VtU3IO45.net] 普通のwin10で utf8のファイルに fc を使うと派手に文字化けします 文字エンコードなどはどこで指定すればよいのでしょうか?
441 名前:デフォルトの名無しさん [2023/09/21(木) 16:42:57.64 ID:2fMT8T96.net] chcp 932
442 名前:デフォルトの名無しさん mailto:age [2023/10/03(火) 21:23:54.04 ID:Z09KwkqG.net] 神様教えて下さい xcopy /D:[MM]/[DD]/[YY] で指定した日付以降のファイルをコピーできるけど x日前より新しいファイルのみコピーしたい時の方法はない?
443 名前:デフォルトの名無しさん mailto:sage [2023/10/04(水) 11:25:24.03 ID:Ru3hWGvF.net] Robocopy の /MAXAGE
444 名前:デフォルトの名無しさん mailto:sage [2023/10/04(水) 12:20:07.48 ID:Wr02smam.net] 5chなんでこんなに重いん?いつまでこの重いの続くん?
445 名前:デフォルトの名無しさん mailto:sage [2023/10/04(水) 12:29:43.90 ID:UHUx/6V1.net] なんで俺に聞くの?
446 名前:デフォルトの名無しさん mailto:sage [2023/10/04(水) 13:11:28.12 ID:Wr02smam.net] いや、お前には聞いてない
447 名前:デフォルトの名無しさん mailto:sage [2023/10/06(金) 09:10:25.11 ID:u9U/aciQ.net] 5ch攻撃してる人が飽きるまで。
448 名前:デフォルトの名無しさん mailto:age [2023/10/09(月) 15:26:51.31 ID:gPLHWilL.net] 神様教えて下さい dir のオプションで/b /s 付けた時に フルパス名が辞書順になるオプションってどれ? /on /ogとかあるけど 思うようにならない
449 名前:デフォルトの名無しさん [2023/10/09(月) 17:55:27.25 ID:416rm9Ab.net] /q
450 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 11:13:06.14 ID:GmlcHfbX.net] 「VBScript」は非推奨に、将来のWindowsリリースで削除 https://forest.watch.impress.co.jp/docs/news/1537619.html batファイルはどうなる?
451 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 11:26:18.76 ID:cUy975D5.net] >>450 糞過ぎる
452 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 11:37:38.54 ID:l0kLdmnh.net] JScriptというかWindowsScriptHostは生き残るのか?
453 名前:デフォルトの名無しさん mailto:sage [2023/10/10(火) 18:15:49.98 ID:dUGfQnTA.net] なんで5chこんなに重いん?この重いのいつまで続くん?
454 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 07:20:10.03 ID:x54NWWVS.net] >>450 EdgeのIEモードが2029までだからそれまでは使えるという予想があったけど 機能の有効化で使えるならどうでもいいわ
455 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 08:26:32.52 ID:mMAmsq6k.net] ネットは心の鏡 お前の心が重いのだ
456 名前:デフォルトの名無しさん mailto:sage [2023/10/11(水) 13:00:48.19 ID:yI6tEEU8.net] textファイル1に a b c d が入ってて textファイル2に 1 2 3 4 が入ってて 連結して a1 b2 c3 d4 にしたいけど dosコマンドだけでは無理?
457 名前:デフォルトの名無しさん mailto:sage [2023/10/12(木) 15:02:33.47 ID:DS7FO2PL.net] >>456 無理ではないがコマンドプロンプト開いて1行のコマンドで書くのはとても面倒だからバッチファイル書いたほうがいい
458 名前:デフォルトの名無しさん mailto:sage [2023/10/12(木) 21:58:11.30 ID:ZXm8+EHB.net] powershell -c "gc textファイル1, textファイル2 | group readcount | foreach{$_.group -join ''}" a1 b2 c3 d4
459 名前:デフォルトの名無しさん mailto:sage [2023/10/13(金) 11:28:13.45 ID:eHigHg14.net] >>458 '-join' 演算子に続けて値の式を指定する必要があります。 って警告が出ます
460 名前:デフォルトの名無しさん mailto:sage [2023/10/13(金) 17:19:46.92 ID:5yGgcXlN.net] 「''」と「"」を見間違えてるのでは
461 名前:デフォルトの名無しさん [2023/10/29(日) 22:58:43.01 ID:4fxrkRUI.net] 環境変数を;区切りで改行して出力したくて for /F "delims=;" %i in ("%PATH%") do echo %i としたのですが最初の一つしか出力されません 何がダメなんでしょうか...
462 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 00:54:06.32 ID:S4fhwBsv.net] ダブルクォーテーションで囲まれた"%PATH%"が1つの引数としてForに渡されて1つ目の区切り文字に達するまでを出力してるからそうなる 1つずつ取り出したいならダブルクォーテーションを消せば良いがそれだと半角スペースも区切り文字に判定されるから 簡単にやろうと思ったらまず半角スペースを別の文字に置換してからダブルクォーテーション無しで渡してその後半角スペースを元に戻すとかかな
463 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 01:46:36.18 ID:dhg2pdyL.net] "%PATH%"が一行なのでforループも1回しか繰り返さないってだけ
464 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 02:13:56.37 ID:dhg2pdyL.net] delimsの区切り記号指定は、 for /F "tokens=1-3 delims=;" %i in ("%PATH%") do echo %i,%j,%k とか1行の中で複数項目に分ける場合に使う 区切り記号でループさせることは不可能
465 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 03:27:22.35 ID:dhg2pdyL.net] 興が乗ったので作ってみた @echo off SETLOCAL EnableDelayedExpansion SET LF=^ SET splitted_path=%PATH:;=!LF!% for /f "tokens=*" %%i in ("!splitted_path!") do echo,%%i
466 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 06:58:07.09 ID:EuHHvGeq.net] バッチと関係ないけどpath変数のフォルダ名に ;文字が入ってたらwindowsの動作はどうなるんだろう "で囲めばいいだけなのかな
467 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 13:19:36.99 ID:dhg2pdyL.net] 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!
468 名前:デフォルトの名無しさん [2023/10/30(月) 23:23:37.40 ID:oqTBGQIx.net] 皆さんありがとうございます参考になりました。 気軽に使いたかったのでこんな感じで雑に実現しました @echo off for %%i in ("%PATH:;=";"%") do echo %%i pause 毎回環境変数ウィンドウ開くの面倒だからcliで見やすく確認できないかなーと気軽に始めたのですがbatスクリプト難しいですね 遅延展開とか初めて聞きましたw
469 名前:デフォルトの名無しさん mailto:sage [2023/10/31(火) 06:54:11.36 ID:9EMrUdB9.net] 遅延にしたら!が変わる !があると^も変わる
470 名前:デフォルトの名無しさん mailto:sage [2023/10/31(火) 07:18:54.11 ID:1/1CCAX6.net] バッチは不毛すぎる 使うのは最小限に留めろ
471 名前:デフォルトの名無しさん mailto:sage [2023/10/31(火) 07:44:42.03 ID:/7M4GG46.net] 頑張りすぎると無毛になる
472 名前:デフォルトの名無しさん mailto:sage [2023/10/31(火) 08:59:44.07 ID:5Lja4y81.net] おかえり
473 名前:デフォルトの名無しさん mailto:sage [2023/11/01(水) 10:36:13.57 ID:QIr7Aj5s.net] バッチファイルは縛りプレイが好きな人にしか向かないよ
474 名前:デフォルトの名無しさん mailto:sage [2023/11/12(日) 10:36:55.29 ID:8jJHTm3/.net] batファイルの処理が終わったらスマホに何らかの通知を送りたいんですが何かいい方法は無いですか?
475 名前:デフォルトの名無しさん mailto:sage [2023/11/12(日) 13:00:47.64 ID:9doZQWI1.net] SMS送信するWebAPI実行
476 名前:デフォルトの名無しさん mailto:sage [2023/11/12(日) 18:58:13.28 ID:aZ7/2ZLa.net] NET SEND
477 名前:デフォルトの名無しさん mailto:sage [2023/11/19(日) 15:27:06.49 ID:tEMsHOKq.net] >>475 >>476 どちらも難しそうだったのでPowerShellでGmailを送るやり方にしました
478 名前:デフォルトの名無しさん mailto:sage [2023/12/11(月) 17:33:41.74 ID:DuarkpA3.net] 習作で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に固定されてしまい、 判定を上手く行うことが出来ずにいます 稚拙な質問でお恥ずかしいのですがどのように修正すれば良いでしょうか
479 名前:デフォルトの名無しさん mailto:sage [2023/12/11(月) 21:12:00.54 ID:WKo0W+M9.net] >>478 お前がなぜレスを貰えないのかchatgptに聞いてこい
480 名前:デフォルトの名無しさん mailto:sage [2023/12/11(月) 21:23:41.62 ID:ZQU2Csd1.net] >>478 いちばん手っ取り早いのは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の指定ないけどそれは問題ない?
481 名前:デフォルトの名無しさん mailto:sage [2023/12/11(月) 22:30:44.45 ID:TXSKL9RJ.net] for文を初めて使ったものでスレ汚し紛いな質問で申し訳ないです setlocal enabledelayedexpansionを利用して手直しし、 希望通りの結果を出力できました。ありがとうございました
482 名前:デフォルトの名無しさん [2023/12/12(火) 18:16:58.21 ID:e+gu1Rew.net] こんな感じでperl起動するとして、このときwindows terminal(設定によってはコマンドプロンプト)の新しいウィンドウが開かれてperlのコードが実行されますが、既に開いているwindows terminal内で新しいタブを開いて実行できないでしょうか? perl "aaa.txt" exit /B
483 名前:デフォルトの名無しさん [2023/12/12(火) 18:55:34.45 ID:e+gu1Rew.net] 書き忘れました バッチファイルの実行はコマンドプロンプト内ではなく、バッチファイルのアイコンをダブルクリック(おそらくエクスプローラーで実行)することを前提にしてます
484 名前:デフォルトの名無しさん mailto:sage [2023/12/12(火) 20:27:32.49 ID:I4UWTUvH.net] >>482 11のターミナルのタブはバグなのか仕様なのか誰も判らんから答えようがないよ どうして11みたいな糞を恥ずかしげもなくリリースしたのかMSに聞いてこいよ
485 名前:デフォルトの名無しさん mailto:sage [2023/12/17(日) 11:53:39.09 ID:zJzmsCBl.net] >>482 batではなくショートカット作って プロパティのリンク先をwt perl "スクリプトのフルパス" 作業フォルダーをスクリプトのあるフォルダ でよくない?
486 名前:デフォルトの名無しさん [2024/01/18(木) 19:51:19.47 ID:WajCwGEB.net] シンプルに指定のフォルダ内へ存在する、特定のフォルダとファイルをバッチで一括削除する場合、そう記述すれば良いでしょうか C:\AAA\BBB\CCCの、CCCの中にある フォルダ1、フォルダ2、ファイル1、ファイル2、ファイル3・・・をまとめて削除したいのです バッチファイルでCCleaner v5.63の対象リストみたいな運用をしたく思っています
487 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 20:05:52.37 ID:lPYOY/79.net] >シンプルに シンプルかーよっしゃ! >指定のフォルダ内へ存在する、特定のフォルダとファイルを へはどっちに掛かるの? >バッチで一括削除する バッチスレやしな >場合、 うん… >そう記述すれば良いでしょうか そうやな、 まずChatGPTにその質問内容が人間に判る文章になってるか添削してもらいな
488 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 21:24:27.19 ID:fl7npJfZ.net] 消したいファイルやフォルダを列挙するのが一番シンプル フォルダ内を全部消したいのなら rmdir /s /q ただし指定したフォルダも消えるので再度作る必要はある
489 名前:デフォルトの名無しさん [2024/01/18(木) 21:50:17.22 ID:WajCwGEB.net] >>488 早々に有難うございます ネットにある指南もかなり事前チェックした上での投稿ですが、断片的な内容が多く、それらをコピペして調整せども上手くいかなかったものでして ひょっとすると@echo offのあとに del C:\AAA\BBB\CCC\ファイル1 del C:\AAA\BBB\CCC\ファイル2 del C:\AAA\BBB\CCC\ファイル3 rmdir /s /q C:\AAA\BBB\CCC\DDD rmdir /s /q C:\AAA\BBB\CCC\EEE rmdir /s /q C:\AAA\BBB\CCC\FFF exit 的な箇条書きで良かったりしますか?
490 名前:デフォルトの名無しさん [2024/01/18(木) 21:54:35.77 ID:WajCwGEB.net] これまでよく運用してきたアットリブやサービスなどは、例を挙げると attrib +s +h C:\Users\xxxxxx\ntuser.dat のたった一行で完結していました ファイルディレクトリの削除も、特別な条件を付与しない場合は上記と似たようなものでしたかね
491 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 22:00:03.62 ID:MX5L5JEY.net] pushd C:\AAA\BBB\CCC rd /s/q フォルダ1 フォルダ2 ファイル1 ファイル2 ファイル3・・ popd …フォルダは消せてもファイル消せないか。じゃあ、 pushd C:\AAA\BBB\CCC rd /s/q フォルダ1 フォルダ2 ファイル1 ファイル2 ファイル3・・ del /f フォルダ1 フォルダ2 ファイル1 ファイル2 ファイル3・・ popd エラーは無視w
492 名前:デフォルトの名無しさん [2024/01/19(金) 05:19:53.22 ID:bHDC7nyS.net] >>491 望むバッチが作れました 有難うございました
493 名前:デフォルトの名無しさん mailto:sage [2024/01/19(金) 06:08:19.50 ID:xbWxkRsK.net] >>491 フォルダ1とフォルダ2を一つの命令で消すことは出来ないのでは?
494 名前:デフォルトの名無しさん mailto:sage [2024/01/23(火) 21:55:09.85 ID:ke6XWARZ.net] バッチファイルから VS Code を起動しようと start で start ”C:\apps\VSCode\Code.exe” のようにすると、Code.exe の終了待ちになってしまいます 実行後は普通の exe のようにプロンプトに戻ってきて欲しいのですが、 バッチファイルでどうにかできるものでしょうか?
495 名前:デフォルトの名無しさん mailto:sage [2024/01/23(火) 23:07:46.88 ID:fGdUtoWj.net] >>494 bin\code.cmdから起動するか set ELECTRON_NO_ATTACH_CONSOLE=true すればすぐ戻る
496 名前:デフォルトの名無しさん mailto:sage [2024/01/23(火) 23:27:45.51 ID:ke6XWARZ.net] >>495 ありがとうございました 期待通りの動作になりました 微妙に訂正 >494 は start ”” ”C:\apps\VSCode\Code.exe” と書くべきでした
497 名前:デフォルトの名無しさん mailto:sage [2024/02/02(金) 14:12:59.14 ID:/quSrI1G.net] バッチでディレクトリの中身のファイルを別のディレクトリにコピーしたい 大量にあるから更新時刻の新しいのだけコピーしたい robocopy以外のコマンドで可能?
498 名前:デフォルトの名無しさん mailto:sage [2024/02/02(金) 19:39:01.90 ID:wG6y7v1N.net] xcopy /d では対応できない案件? 他には forfiles を組み合わせるとかあるけど、そもそも robocopy を避ける理由が 分からないと勧めづらい
499 名前:デフォルトの名無しさん mailto:sage [2024/02/02(金) 19:55:07.14 ID:SlEtxLWX.net] バッチで時刻見ながら1個1個コピーとか…可能
500 名前:デフォルトの名無しさん mailto:sage [2024/02/02(金) 20:29:32.82 ID:/quSrI1G.net] >>498 感謝 robocopyとcopyしか考えてなかった robocopyはオプション間違えると消えるのが恐くて
501 名前:デフォルトの名無しさん mailto:sage [2024/02/02(金) 23:09:26.35 ID:oSMWA/4/.net] こういうの使った方が早いかもよ ttps://schinagl.priv.at/nt/ln/ln.html
502 名前:デフォルトの名無しさん mailto:sage [2024/02/03(土) 11:35:25.52 ID:OZed/uKu.net] NASやファイルサーバの機能の重複除去を有効にすると文字通り重複してるファイルは勝手にファイルシステム内で統合されるから気にする必要事なくなるよ
503 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 14:00:04.95 ID:xcbCRr3h.net] >>480 %errorlevel% という環境変数モドキのないdosでも使える if not errorlevel 1 が正解
504 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 15:31:25.08 ID:Pal4p53G.net] フォルダがいくつかあって フォルダの名前が年月日で 「あれYYYYMMDD」形式になています 最新の日付フォルダの中身の特定のファイルだけを 別フォルダにコピーする バッチファイル可能ですか?
505 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 16:31:32.99 ID:1D5G9s1W.net] >>503 cmd /c exit -1 if not errorlevel 1 echo OK
506 名前:デフォルトの名無しさん mailto:sage [2024/02/16(金) 16:34:14.65 ID:1D5G9s1W.net] 途中で間違って書き込んじゃった。 戻り値が負数の場合に注意が必要。
507 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 00:37:59.57 ID:exMGzLtn.net] 住人いるのか?
508 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 21:32:34.28 ID:cEgPx2Y0.net] いないよ
509 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 21:48:31.82 ID:8BVQzeBd.net] >504 誰か教えて
510 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 21:54:53.76 ID:nVSr20GQ.net] >>509 まずフォルダ名からYYYYMMDDの部分を抜き出して フォルダをしらみつぶしに大小比較していく 一番大きい数値のフォルダはこれで特定できる その中身の特定のファイルはどういった特定なのかで実現できるかどうか分かれる
511 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 21:59:21.24 ID:8BVQzeBd.net] >>510 特定のファイルとは 特定のファイル名です 全てのフォルダに同じファイル名のファイルが入ってる
512 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 22:58:24.97 ID:XS7vFeOB.net] >>511 こんなかんじ? md あれ20240313 あれ20240314 あれ20240315 あれ20240316 dest call>あれ20240316\特定のファイル setlocal enabledelayedexpansion call>are_list.txt for /f %%a in ('dir /ad /b "あれ*"') do ( set "are=%%~a" echo !are:~-8,8!>>are_list.txt ) endlocal sort /r are_list.txt /o are_list.txt set /p target=<are_list.txt copy あれ%target%\特定のファイル dest
513 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 08:55:44.79 ID:PUBVa+tA.net] FOR /F %%i IN ('dir /b /o-n あれ*') DO ( copy "%%i\特定のファイル" "別フォルダ" & goto :eof)
514 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 09:42:46.12 ID:yhWVSGDf.net] for /d %%i in (あれ*) do set フォルダ=%%i copy "%フォルダ%\特定のファイル" "別フォルダ"
515 名前:デフォルトの名無しさん mailto:sage [2024/04/08(月) 22:28:43.24 ID:tYLSO2Xj.net] ※スレ違いで誘導していただきました https://mevius.5ch.net/test/read.cgi/tech/1687260267/507 コマンドプロンプト(robocopy)について Windows 11 Pro 23H2です 図1のように、robocopyで「フォルダA」を「フォルダB」へミラーコピーする実行ファイルを作成しました (フォルダA)空 (フォルダB)ファイル.txtのみ 図2の削除予定?フォルダやファイルを非表示にしたいのですが、 それらしきログオプションが分かりませんでした (図1)https://i.imgur.com/lH5b1iq.png (図2)https://i.imgur.com/3Ye9N5c.png よろしくお願いいたします
516 名前:sage [2024/04/09(火) 14:00:57.75 ID:Ugima7Hm.net] >>515 /lじゃなくて/quitはどう?
517 名前:デフォルトの名無しさん mailto:sage [2024/04/09(火) 14:46:09.52 ID:A/PWQBtx.net] HELP ATTRIB
518 名前:デフォルトの名無しさん mailto:sage [2024/04/09(火) 20:18:46.54 ID:ad5KI3J5.net] 削除予定なら削除してからコピーを実行したら表示されないんじゃね
519 名前:デフォルトの名無しさん mailto:sage [2024/04/09(火) 21:46:07.89 ID:yR8KPsJp.net] /XF ファイル.txt
520 名前:デフォルトの名無しさん mailto:sage [2024/04/10(水) 19:52:48.51 ID:sNhBgYIO.net] >>516-519 ありがとうございます >>516 さんの /quit で意図する動作ができました! >>517 さんの事前削除もいいですね https://i.imgur.com/iDD0vYw.png ありがとうございました
521 名前:デフォルトの名無しさん [2024/04/24(水) 02:18:02.70 ID:K1wg6IoP.net] バッチファイルでExecutablePathにToolsを含むzebedee.exeというプロセスをkillしたいのだが、 for /f "usebackq tokens=2 delims==" %%A in (`WMIC PROCESS WHERE "Name='zebedee.exe' and ExecutablePath like '%%Tools%%'" get ProcessId /VALUE ^| find "="`) do ( taskkill /F /pid %%A ) だと D:\Tools\zebedee>( taskkill /F /pid 21252 ) エラー: 無効なクエリです となってしまう。 for /f "usebackq tokens=2 delims==" %%A in (`WMIC PROCESS WHERE "Name='zebedee.exe' and ExecutablePath like '%%Tools%%'" get ProcessId /VALUE ^| find "="`) do ( set PID=%%A ) taskkill /F /pid %PID% だと成功する。 forの中にtaskkillて書けないの? 「エラー: 無効なクエリです」てWMICのエラーだから、forとWMICとtaskkillの問題?
522 名前:デフォルトの名無しさん mailto:sage [2024/04/24(水) 12:53:51.62 ID:cg/GbNoZ.net] >>521 WMICはパイプを使うと改行がCR CR LFとなって、%%A に正しく設定できていないのでだめっぽい。 SETするとCRが削除されてうまくいくようです。 というわけで、いったんリダイレクトしてファイルにするとよいでしょう。 ^| find "=" ↓ ^>T ^&^& find "=" T
523 名前:デフォルトの名無しさん mailto:sage [2024/04/24(水) 19:27:30.39 ID:zTq4mcuG.net] 前にquery userってコマンドの出力を変数に入れたかったんだけど 出力に文字'>'が入っててうまく取り込めなくてその時は結局vbsだかで取り込んだ バッチだけでやる方法ってあったのかな
524 名前:デフォルトの名無しさん [2024/04/26(金) 01:53:35.81 ID:WIIBP3hh.net] >>522 for /f %%A in ('wmic process where ^( Name like 'zebedee.exe' and ExecutablePath like '%%Tools%%'^) get processid') do ( taskkill /F /pid %%A ) これで出来た。エラーするけど。 なんでMSのコマンドって不要なものを消せないのかね。 Linuxだと情報だけを表示するオプションがあるのに。
525 名前:デフォルトの名無しさん [2024/04/26(金) 06:34:16.76 ID:WIIBP3hh.net] >>524 forとtaskkillで頑張らなくても wmic process where ( Name like 'zebedee.exe' and ExecutablePath like '%%Tools%%') delete でよかったんだ。
526 名前:デフォルトの名無しさん [2024/04/28(日) 21:55:14.93 ID:zlR73q8o.net] スレ立てあらしスクリプト対抗age
527 名前:デフォルトの名無しさん mailto:sage [2024/05/15(水) 15:54:12.87 ID:7SsR7Bys.net] コマンドラインからスリープ状態にするやり方調べてたけど意外と面倒くさいんだな スリープじゃなくて休止になったり管理者権限が必要だったり
528 名前:デフォルトの名無しさん mailto:sage [2024/05/15(水) 16:36:20.47 ID:7ab9f7zE.net] powershellにおまかせするのが楽みたいだね
529 名前:デフォルトの名無しさん mailto:sage [2024/06/12(水) 21:35:23.01 ID:XPCO6cU9.net] 共有フォルダの特定のファイルが不定期に更新されるので 過去のファイルを残すために 別のフォルダに保存しておきたい 更新の都度=全部は無理としても毎日1回はコピーしたい 元ファイル名にコピーする日付と時刻を追加したファイル名で 数日更新しない時もあるから 更新されてなかったらコピーしたくない そんなバッチファイル可能? 毎日1回はタスクスケジューラで設定
530 名前:デフォルトの名無しさん mailto:sage [2024/06/12(水) 22:35:20.23 ID:09UxvqoI.net] >>529 両方のファイルのタイムスタンプを比較すればいいかな for /f "tokens=*" %%i in ("foo.txt") do echo %ti 新しいかどうかじゃなくて一致するかしないかで十分だと思う dir /t "foo.txt" でも更新日付は求められる xcopy "foo.txt" backup_folder /d でも更新されたファイルのバックアップはできるが同じファイル名となる まあ頑張ってくれ
531 名前:デフォルトの名無しさん mailto:sage [2024/06/12(水) 22:36:29.43 ID:09UxvqoI.net] ティルダが抜けてた for /f "tokens=*" %%i in ("foo.txt") do echo %~ti
532 名前:デフォルトの名無しさん mailto:sage [2024/06/12(水) 23:08:41.34 ID:XPCO6cU9.net] >>531 明日試します ファイル名は日付時刻だけなら何とかなりそう 元ファイル名に連結がうまくできない
533 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 00:35:39.15 ID:V4k66q9W.net] >>532 ファイル名の変名の一例として foo.txt → foo_yyyymmdd-hhmm.txt にするなら for /f "tokens=*" %%i in ("foo.txt") do set d=%%~ti set dd=%d:~0,13%%d:~-2% set dd=%dd:/=% set dd=%dd: =_% for /f "tokens=*" %%i in ("foo.txt") do echo %%~ni_%dd%%%~xi
534 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 01:21:37.93 ID:V4k66q9W.net] 秒も要るなら for /f "tokens=2,3" %%i in ('where /t "foo.txt"') do set d=%%i&set t=_%%j set dd=%d:/=% echo %t%|findstr _[0-9]:>nul&&set t=%t:_=_0% set tt=%t:~1,2%%t:~4,2%%t:~-2% echo foo_%dd%-%tt%.txt
535 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 14:56:29.48 ID:H/tJtGX+.net] >>533 の /f "tokens=*" は不要な気がする
536 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 15:08:14.13 ID:UQXtemWf.net] ファイル名が "メモ1 買い物リスト.txt"とか十分ありえるしなあ
537 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 15:09:50.12 ID:UQXtemWf.net] ああ/fが要らんのか
538 名前:デフォルトの名無しさん [2024/06/15(土) 21:58:33.69 ID:1hp9WHhR.net] ファイルをコピーしてファイル名の変更すらわからない人間に教えなくてもいいと思うぞ
539 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 23:00:01.75 ID:lwRcTmIT.net] 超絶初心者わいがネットで拾ったバッチファイルを 自分仕様にいじってるんだけも根本的にわからない事があったので来ました 主に動画ファイルのエンコードとか処理とかです 1 複数ファイルをD&Dしてファイル作成日時の古い順から処理する 2 ファイルネームに日本語全角スペースがある場合でも読み込んで処理する この2つの仕様をWindowsバッチファイルだけで両立可能なのでしょうか? ChatGPTとCopilotに聞くと出来ます!こう修正してって言われてやっても 上手くいった試しがないのでそもそも両立可能なのかがわかりません よろしくお願いします(´・ω・`)
540 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 23:26:37.72 ID:UQXtemWf.net] D&Dは止めた方がいいね 最近の過去ログに無理やりやるのがあったと思うがまあ止めといたほうがいい もっと運用を考えるべきだね
541 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 23:53:38.13 ID:UQXtemWf.net] >>539 フォルダに半角空白入りの名前を付けておくのがもっとも簡単な対策
542 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 00:32:01.65 ID:fRT17GSx.net] powershellへ移行しない理由は何?
543 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 00:49:07.80 ID:/Fmpwzf6.net] 移行できる人なら質問しないだろうよ
544 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 09:39:33.25 ID:+73AB3cR.net] PowerShellって初回使用時すごい待たされるじゃん 普段使ってなくて毎日シャットダウンするような人は使おうと思ったとき待たされてストレス受けるんだよね
545 名前:デフォルトの名無しさん mailto:sage [2024/06/16(日) 11:14:43.44 ID:44t+YCVJ.net] 毎日シャットダウンはするけど普段使ってないものとは なぞなぞかな
546 名前:540 mailto:sage [2024/06/16(日) 22:03:28.94 ID:46K9PH7S.net] >>541 ありがとう これはAIでは出てこない答えで感心しました 基本的にはムリっぽいという感じですかね powershellの方が良いこともわかってはいるのですが なにぶん物覚えが悪すぎて(´・ω・`)
547 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 00:26:58.20 ID:BTOFB8aB.net] むしろpowershellのほうがググれば沢山出てくるし書きやすいと思うけどね
548 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 09:41:03.27 ID:4dsWgq6q.net] %20とか名前付けるか Pathのマルチバイト問題は解決困難だなあ
549 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 15:06:14.86 ID:NTaBtmxu.net] 全角スペースがある場合は フルパスの一部にでも半角スペースが入っていれば問題が生じないので、 別名として、当該フォルダに対して、シンボリックリンクなりジャンクションを半角スペースを入れた名前で作成し、 これを経由して運用すれば、とりあえず回避はできるよ XPの頃にさんざん苦しんだのに、未だ根本的な解決がなされていないというのはモヤモヤする 環境によっては、"#"がフルパスに入るとだめというのもあるな
550 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 16:53:21.50 ID:A2yJgFtn.net] D&Dやめて日付順のリストファイルを作成したらどうかね エクスプローラーとメモ帳で簡単にできるでしょ
551 名前:デフォルトの名無しさん [2024/06/17(月) 23:01:16.20 ID:4L+665Jw.net] ドラッグアンドドロップなんてバッチ処理の発想じゃねえなw
552 名前:デフォルトの名無しさん [2024/06/17(月) 23:01:56.15 ID:4L+665Jw.net] CUIをGUIの言葉で言うのは斬新すぎる
553 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 14:55:27.29 ID:baOC8PLn.net] Ruby で作ってみた。 Rubyでは半角空白はエラーになるけど、全角空白は正常に動く デスクトップにショートカットを作って、 それに対して、ファイルをdrag & drop する ショートカットのリンク先は、 C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/script.rb" (@は取り除いて下さい) require 'fileutils' Sep = '-' * 40 + "\n" # separator # ファイル作成日時の古い順から処理する。 # ただし、File.(stat.)birthtime は、Linux では使えない ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ .sort_by{ |full_path| File.birthtime( full_path ) } .each do |full_path| puts Sep + full_path p birthtime = File.birthtime( full_path ) # ここに処理を書く end sleep # 出力したコマンドプロンプト画面を閉じないようにする
554 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 21:41:48.63 ID:AL0iJITw.net] バッチファイルでちまちま文字列処理するのは C言語でちまちま文字列処理するくらい不毛だからやめとけ
555 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 06:56:43.32 ID:oAthcLJ7.net] 私が普段使っているドラッグアンドドロップ用バッチのサンプルです @echo off & set a="%cmdcmdline:"=%"& set "arg=" for /f "tokens=3* delims=:" %%i in (%a%) do (set a=%%i& set b=%%j) set "a=%a:~-1%" & set b="%b::=" "%" for %%i in (%b%) do set b=%%i& call :x goto y :x if defined arg set arg=%arg:~0,-3%" set arg=%arg% "%a%:%b:~1%& exit /b :y echo コマンド %arg% pause & exit
556 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 14:12:10.76 ID:6cw0yeSx.net] PowerShellて別の文字でエラーになるとか聞いたけど本当?
557 名前:デフォルトの名無しさん mailto:sage [2024/07/16(火) 20:58:55.86 ID:Ho7KhNQA.net] net session /delete の後の2回のY/N選択をコマンドで自動入力したいんだけど、どうやればいいの?
558 名前:デフォルトの名無しさん mailto:sage [2024/07/16(火) 21:44:58.97 ID:PFxavJIe.net] >>557 応答ファイル(y+CR/LF, n+CR/LF)を作ってそれを入力とするのが常套手段だが ●Y/Nが1回の場合の例 rem ***準備 mkdir 111 2>nul echo.>109\1.txt rem ***応答ファイル作成 echo n>n.txt echo y>y.txt del Z:\111\*.*<n.txt >nul 2>&1 2回とのことなので、 echo n>n_n.txt echo n>>n_n.txt とするといけるかも(実行してないので結果不明)
559 名前:デフォルトの名無しさん mailto:sage [2024/07/17(水) 06:53:17.67 ID:gLjbT8+P.net] ahk
560 名前:デフォルトの名無しさん mailto:age [2024/08/12(月) 12:32:10.56 ID:om8unfFL.net] 初心者質問ですみません。ffmpegで一括再エンコードしたいと思ってバッチファイルを作ってみたのですがファイルにスペースが含まれるとエラーが出るようで困っています。どのように対処すればよいか、どなたか御教示お願い出来ませんでしょうか? @echo off cd /d %~dp0 for %%a in (*.mp4) do ( "C:\ffmpeg\bin\ffmpeg.exe" -i %%a -b:v 500k -c:a copy %%~na_500k.mp4 ) pause
561 名前:デフォルトの名無しさん mailto:sage [2024/08/12(月) 14:37:08.59 ID:NAcZpcdu.net] >>560 引数として渡されるファイル名にスペースがある場合? それなら引数を”で囲めば行けるんじゃね?
562 名前:デフォルトの名無しさん mailto:sage [2024/08/12(月) 19:13:11.22 ID:N4nkPpmi.net] 有難うございます。引数を""で囲んだら上手くいきました。
563 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 08:38:22.80 ID:hcouLIA5.net] 別のスレでも質問させていただいているのですが、こちらの方が適切かと思い投稿させていただきます。 以下をbatファイルで動かそうとしてもうまく動かないのですが、どうしたら良いでしょうか。 batファイルをダブルクリックして、PowerShellを実行しています。 PowerShellのスクリプト部分は、PowerShellで動くことを確認済です。 ランダムパスワードを生成する感じです。 https://chatgpt.com/...05-98e7-18f01918f140
564 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 08:39:33.18 ID:hcouLIA5.net] リンクはこちらです https://chatgpt.com/share/66fdc027-bb18-8005-98e7-18f01918f140
565 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 10:24:37.73 ID:EmzEDUtK.net] 適切だと思ったらマルチポストも辞さない
566 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 07:40:33.06 ID:BveI+02d.net] 以下を消したら動くようになりました。 解決です。 Param( [int]$Length = 16, [switch]$IncludeUppercase, [switch]$IncludeLowercase, [switch]$IncludeNumbers, [switch]$IncludeSymbols )
567 名前:デフォルトの名無しさん [2024/10/12(土) 02:43:46.51 ID:fuP8Oeol.net] iris-microという便利なソフトつかって 画面明るさ色温度かえてます バッチファイルが2種類あって この設定をきりかえつかっています ふたつのバッチファイルを 交互に繰り返すようなスクリプト作れますか プロセスがのこったりしてるようでもないので難しいでしょうか?
568 名前:デフォルトの名無しさん mailto:sage [2024/10/12(土) 16:51:48.93 ID:4VpnKVlz.net] バッチを順番に呼び出して先頭にgotoすれば交互になるような気がします
569 名前:デフォルトの名無しさん mailto:sage [2024/10/12(土) 17:04:01.38 ID:qxhXc26A.net] 同じbatで起動するたびにサイクリックに実行する内容を切り替えるって意味じゃないかな 何か外部にフラグみたいなもの(又は実行用にbatをコピーしてそれを呼び出す)を用意するといいんじゃないかな 同時起動の排他制御とかは個人使用ならまあ不要だろう
570 名前:デフォルトの名無しさん mailto:sage [2024/10/12(土) 17:39:10.70 ID:Iy6RGAFA.net] 状態を持たせたいならバッチの名前を変えるという荒業もできるね
571 名前:デフォルトの名無しさん mailto:sage [2024/10/12(土) 18:07:14.49 ID:qxhXc26A.net] 自分自身の名前は変えられないので別ファイルを用意 そもそもbat名を変えたら起動の度に別bat名で起動することになり元々の2つのbatのある状態と変わらんじゃん
572 名前:デフォルトの名無しさん mailto:sage [2024/10/12(土) 18:14:50.19 ID:Iy6RGAFA.net] リネームは昔からあるハックだけどな 頭悪そう
573 名前:デフォルトの名無しさん mailto:sage [2024/10/12(土) 19:31:57.02 ID:d82xRt2j.net] echo.>stat_on if exist stat_on とかでチェック用ファイルで分岐するのが手っ取り早い より汎用的にやるなら inifile.exeみたいの作るか拾うかして状態を読み書きする
574 名前:デフォルトの名無しさん mailto:sage [2024/11/06(水) 18:43:05.45 ID:KAHjZpf+.net] winPCで エクスプローラから 複数ファイルを バッチファイルにドロップして 拡張子付きファイル名のみ(パスなし)を 1行1ファイル名で list.txtに書き出したい どの様に?
575 名前:デフォルトの名無しさん [2024/11/06(水) 19:42:12.98 ID:0Z0sjFnd.net] てすと.com
576 名前:デフォルトの名無しさん mailto:sage [2024/11/07(木) 07:18:54.75 ID:diE3Ipx6.net] >>574 @echo off & chcp 65001 set a="%cmdcmdline:"=" "%" call :x > list.txt & exit :x set a=%a:*.bat" =% for %%i in (%a:""=%) do set a=%%i& call :y exit /b :y if "%a:~1,1%"==" " set a=%a: =" "% for %%i in (%a:""=%) do echo %%~nxi list.txt は UTF-8 にしてみた バッチの拡張子は .bat
577 名前:デフォルトの名無しさん [2024/11/07(木) 10:34:25.11 ID:sTPvG4+T.net] 初めからコマンドプロンプトでやればいいのに
578 名前:デフォルトの名無しさん [2024/11/07(木) 10:35:43.77 ID:sTPvG4+T.net] まずは特定のフォルダにファイルを集めるという発想がないんだろうな
579 名前:デフォルトの名無しさん [2024/11/07(木) 11:01:23.05 ID:5OQwBO7R.net] batファイルで=を含む置換えの時の方法教えてください。 入力は Hello World 12=34 @echo off set /p mystringA=あいさつ: set mystringB=%mystringA:12=34=4567% echo %mystringB% 結果をこのようにしたい Hello World 4567
580 名前:デフォルトの名無しさん mailto:sage [2024/11/07(木) 12:14:54.61 ID:9xnRXsv4.net] >>579 batだけでやるには大変(=の置換は無理) 変換前に1文字ずつ判定して=だったら普通使われない文字(=とか)に変えるとかしないとできない 別の方法としては別の言語でサポートしてやれば楽 @if (0)==(0) echo off rem *** このブロックにbat内容を記述する set s=Hello World 12=34 cscript //nologo /e:jscript "%~f0" "%s%" rem for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%s%"') do set s=%%i rem echo %s% goto :eof rem *** @end //これ以降はjscriptの処理部 var data=WScript.Arguments(0).replace(/12=34/g,"4567"); WScript.StdOut.WriteLine(data);
581 名前:デフォルトの名無しさん [2024/11/07(木) 12:33:40.59 ID:5OQwBO7R.net] >>580 サイトによって特殊文字は^だったり"を使ったりで試して出来なかった 代案をわざわざありがとうございます^^
582 名前:デフォルトの名無しさん mailto:sage [2024/11/07(木) 13:07:58.08 ID:sK42d9tR.net] >>576 神様ありがとう なんでかわからないけど動きました list. txtを%USERPROFILE%\Desktopに作成するにはどのようにすれば? 単純に "%USERPROFILE\Desktop\list.txt" に変更してもダメでした
583 名前:デフォルトの名無しさん mailto:sage [2024/11/07(木) 14:02:09.09 ID:DJJuXIJX.net] エクスプローラーで「パスのコピー」あるの知ってる? windows11 なら選択後に shift+ctrl+c バッチとかいらんだろ
584 名前:デフォルトの名無しさん mailto:sage [2024/11/07(木) 16:57:38.50 ID:sK42d9tR.net] >>576 >582 今やったらできました お騒がせしました もしよろしければ 解説お願いします
585 名前:デフォルトの名無しさん [2024/11/08(金) 02:14:23.67 ID:NHkTpL6A.net] del /q "C:\Users\%username%\Desktop\新しいフォルダー" これで新しいフォルダー内が消えないのですが?
586 名前:デフォルトの名無しさん [2024/11/08(金) 03:03:23.20 ID:NHkTpL6A.net] 日本語のファルダだとダメなんですかね?
587 名前:デフォルトの名無しさん mailto:sage [2024/11/08(金) 03:07:22.26 ID:8ciHN7a8.net] 文字コードが違うんじゃないですかね
588 名前:デフォルトの名無しさん [2024/11/08(金) 03:20:42.79 ID:NHkTpL6A.net] なるほど理解しました
589 名前:デフォルトの名無しさん [2024/11/08(金) 03:24:29.70 ID:NHkTpL6A.net] rdコマンドで親フォルダを削除しないようにするにはどう書けば良いのでしょうか?
590 名前:デフォルトの名無しさん [2024/11/08(金) 03:36:30.13 ID:NHkTpL6A.net] rdコマンドで無理なら対象のフォルダ以下にあるファイルやフォルダを全て削除するものでもかまいません。
591 名前:デフォルトの名無しさん mailto:sage [2024/11/08(金) 10:30:14.55 ID:n9fsiKUu.net] カレント移動すれば?
592 名前:デフォルトの名無しさん mailto:sage [2024/11/08(金) 11:10:01.65 ID:PSMBlcAH.net] フォルダーごと削除してから新規作成したほうが簡単じゃね
593 名前:デフォルトの名無しさん mailto:sage [2024/11/08(金) 11:27:40.63 ID:IbrHrevx.net] 俺の環境だと>>585 で消えるけど、/q付けないでやったらファイル削除確認メッセージが出てるか? 出てないなら中身のファイルの属性が隠しファイルになってるとか
594 名前:デフォルトの名無しさん mailto:sage [2024/11/08(金) 23:02:21.70 ID:gP+dh+BC.net] del /q "新しいフォルダー\*" for /d %%i in ("新しいフォルダー\*") do rd /s /q "%%~i"
595 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 11:03:02.45 ID:bVsLqwPh.net] cd "新しいフォルダー" && 2> nul rd /s /q .
596 名前:デフォルトの名無しさん [2024/11/09(土) 11:39:56.84 ID:L7dYAlvM.net] >>580 またつまづきました>< 入力 12&encoding=se34 56=78 これで&encoding=seを削除したくて set "s=%s:^&=%" で&を通したんですが 'encoding'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されません。 となって出来ないです set "s=%s:^encoding=%" data = data.replace(/&encoding=se/g, ""); のように加えてもダメでした どうすればいいですか?
597 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 13:08:18.35 ID:q8k7iVH6.net] 宿題は自分で考えよう
598 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 13:14:42.95 ID:L+GgUCLJ.net] バッチでjscriptに渡す前に&が解釈されてるのかな?知らんけど できないです、どうすればいいですかではなく どこでエラーになってるか突き止めるのが先なのと 文字列処理したいなら違う言語例えばjscriptを覚えた方がよいかと
599 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 13:21:59.27 ID:L+GgUCLJ.net] jscriptは>>580 のようにOS標準で入ってる古いjavascript 最近の構文は一部使えないがバッチよりも動作が高速で正規表現など文字列処理にも適している 他にpowershellもある
600 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 14:09:23.50 ID:A663IrvX.net] &はbatでの特殊記号であり、コマンドの区切りの意味がある set a=aaaa&set b=bbb&set c=ccc とか複数の命令を1行で書ける 他に&&,||もある
601 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 14:31:25.85 ID:A663IrvX.net] もしかして、set /p mystringA=あいさつ:で入力したときの話か? なら、""で括れ set /p "mystringA=あいさつ:" set mystringA="%mystringA:&=%" echo "%mystringA%"
602 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 14:37:00.85 ID:A663IrvX.net] set mystringA="%mystringA:&=%"→set "mystringA=%mystringA:&=%"
603 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 14:43:11.36 ID:A663IrvX.net] あと>>580 はデータを引数渡し("%s%")してるので、「"」をデータ内に入れることができない ファイル渡しすれば確実だが、他に環境変数(s)で渡す場合を示しておく data=new ActiveXObject("WScript.Shell").Environment("Process")("s").replace(/12=34/g,"4567");
604 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 15:04:16.22 ID:A663IrvX.net] ついでに、&について 通常は使わなくても次の行に書けばいいが 閉じた環境からのデータを引渡ししたい場合などはどうしても使わなければならない set a=1 call :sub echo %a% goto :eof :sub setlocal set /a a+=1 endlocal&set a=%a% goto :eof
605 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 18:43:13.91 ID:L+GgUCLJ.net] >endlocal&set a=%a% こんなキモい書き方した事ないな そもそもsetlocalだかは弊害もあるから使わずに書く事を意識した方がいいね このスレは安易に使いすぎてる
606 名前:デフォルトの名無しさん mailto:sage [2024/11/09(土) 19:20:02.72 ID:KYeqqNmx.net] ここはキモイ人ばっかりですから問題ないです笑
607 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 07:08:12.44 ID:3mwMiYGo.net] 遅延展開以外はsetlocalなんて滅多に使わんが他にどうしろと
608 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 10:11:26.77 ID:zZSAaq07.net] setlocal enabledelayedexpansionは書く人多いけど endlocalで閉じてる人見たこと無い
609 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 14:06:03.62 ID:9SnRMU05.net] そりゃあ終了したら効果が無くなるんだから文法マニアくらいしか書かんだろう
610 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 18:35:44.79 ID:i0Pkbsqf.net] サブルーチンでsetlocal enabledelayedexpansionを使ったら endlocalを書かないと呼び出すたびに環境がコピーされていって あっという間に正常に動作できなくなるさ
611 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 19:42:53.96 ID:9SnRMU05.net] サブルーチンに置くというのは想定しなかったな メインの、というかスクリプトの先頭に置く使い方しかしてないや
612 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 20:44:53.21 ID:Hbc3IhS3.net] call先にsetlocalがあってもexit /bやgoto :eofで戻ると 変数復元されるのでendlocalは不要だが有ってもいい やばいのはforやgotoでのループ内部にsetlocalしかないやつ
613 名前:デフォルトの名無しさん [2024/11/10(日) 21:35:28.96 ID:p0BF9o8N.net] >>603 ありがとう。 何時間かやってるけどうまくいかないです。 @@if (0)==(0) echo off rem *** :start Aset /p "ss=ss:" Bset "ss=%ss:&=%" Cset /p "savename=保存名:" Dset ss=%ss% option "%savename%" Eecho %ss%確認1 Fcscript //nologo /e:jscript "%~f0" "%URL%" rem ***for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%ss%"') do set ss= %%i Gecho %ss%確認2 goto :start rem *** H@end // JScript部分 // var data = WScript.Arguments(0); Idata=new ActiveXObject("WScript.Shell").Environment("Process")("ss"); Jdata = data.replace(/aaaaa/g, "bbbbb"); Kdata = data.replace(/12=34/g, "56=78"); Ldata = data.replace(/encoding=seg/g, ""); MWScript.StdOut.WriteLine(data); NWScript.Quit(); これでやるとGでI〜Nが無視される。 Iにvarという変数を与えても同じ。 Iをdata = WScript.Arguments(0);にすると与えた入力が途中で途切れる(実際の入力値に”が入ってるため) Fの代わりにfor文だとbatが落ちる(AppleWebKit/537.36 の使い方が誤っています。) こういうのをスラスラ書ける天才たちがうらやましい。
614 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 22:06:03.40 ID:zZSAaq07.net] forの中の"%ss%"を削除すれば?
615 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 22:08:14.92 ID:cLh8//6O.net] うーんよく判らんけど もう入力データはjscipt内でWScript.StdIn.ReadLine();からで拾ってきた方が早くね?とか バッチはjsciptの呼び出し部分だけ残して全部jscriptでやった方が楽じゃね?とは思った
616 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 22:19:31.51 ID:zZSAaq07.net] ファイル名として使っちゃダメな文字(又はデバイス名)ってのもあるので そういうのが入力されたら別文字に変えるとか削除するとかしないとダメになるぞ
617 名前:デフォルトの名無しさん mailto:sage [2024/11/10(日) 23:54:47.86 ID:cLh8//6O.net] 上で言った楽なやつね。叩き台としてどうかな @if (0)==(0) echo off set ss= :start echo %ss%確認1 rem cscript //nologo /e:jscript "%~f0" "%ss%" for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%ss%"') do set ss=%%i echo %ss%確認2 goto :start @end // JScript部分 var data = ""; if (WScript.Arguments.Count() > 0) { // 渡された引数がある data = WScript.Arguments(0); if (data != "") { WScript.StdErr.WriteLine("渡された引数:" + data); } } WScript.StdErr.Write("ss:"); // バッチのfor入力から除外するためプロンプトをエラー出力で表示 var ss = WScript.StdIn.ReadLine(); WScript.StdErr.Write("保存名:"); data = WScript.StdIn.ReadLine(); data = data.replace(/aaaaa/g, "bbbbb"); data = data.replace(/12=34/g, "56=78"); data = data.replace(/encoding=seg/g, ""); WScript.StdOut.WriteLine(data);
618 名前:デフォルトの名無しさん mailto:sage [2024/11/11(月) 00:41:06.56 ID:ggA4ksL2.net] "%ss%"を引数につけてると 入力に"を入れられると二週目からエラーとなる
619 名前:デフォルトの名無しさん mailto:sage [2024/11/11(月) 00:55:30.51 ID:ggA4ksL2.net] 入力データから"を削除するようにしたほうがいい ファイル名にも"は使えないから必要ないだろ それと基本文字列を扱う場合は""で括ること echo %ss%→echo "%ss%" じゃないと、&|などでエラーになるし、^も消えるとかいろいろ起きる (a^b.txtは正常なファイル名)
620 名前:デフォルトの名無しさん mailto:sage [2024/11/11(月) 01:34:01.29 ID:ggA4ksL2.net] "%ss%"でエラーになってるのはbatでの構文解釈時なのでjscriptでの対処云々以前の問題
621 名前:デフォルトの名無しさん [2024/11/11(月) 02:13:27.56 ID:BY3zyfqu.net] みなさんありがとう。 理想なのができたので、まず、 Fをfor /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" ') do set ss= %%i >>614 ありがとう。たったこれだけだったよ >>615 ,617 文字制限で入力ができなかった。 でもそういうやり方もあるんだと学べたのでありがとう >>618 ,619,620 このbatの後に渡されるexeの処理に””で括っておかないとexeのほうでエラーになる ちゃんとそこを伝えれてなかったね、ごめん 回答してくれてありがとう これWScript.StdIn.ReadLine();をchat gptで文字制限を聞いたらAのような入力方法だったよ とはいえ、ありがとうございました><
622 名前:デフォルトの名無しさん [2024/11/11(月) 03:53:20.62 ID:vS/DyEQP.net] batというプログラミング初めてです。 初心者に良いサイト教えてください。 Windows 10です。
623 名前:デフォルトの名無しさん mailto:sage [2024/11/11(月) 04:28:35.50 ID:UKR+WOTm.net] >>622 www.google.co.jp
624 名前:デフォルトの名無しさん [2024/11/13(水) 02:26:15.40 ID:AkCTz+Wd.net] BATでこんなすごいことできるぞってのを教えてくださいハゲども
625 名前:デフォルトの名無しさん mailto:sage [2024/11/13(水) 02:26:54.33 ID:HWwn2oWP.net] >>621 すっかり忘れてたけど "tokens=*"じゃ先頭が半角スペースやタブだと消えるし、セミコロンだとスキップされるという問題があった バッチはクセがありすぎる eolのデフォルトが;で、しかも"eol="だと今度は"が指定されたことになるとかウソーって言いたい for /f delims^=^ eol^= %%i in ('cscript //nologo /e:jscript "%~f0"') do set ss=%%i
626 名前:デフォルトの名無しさん [2024/11/14(木) 11:47:50.65 ID:oC8TllJp.net] @echo off set T=%tmp%\tmp.txt type nul>%T% for %%f in (%*) do ( >>%tmp%\tmp.txt echo %%~nxf ) type %T% | clip これだと正常に取得できません 正常にファイル名を取得できるようにするにはどう書けばいいでしょうか?
627 名前:デフォルトの名無しさん mailto:sage [2024/11/14(木) 11:50:39.07 ID:WvtXCkNi.net] 他の「ふつう」の環境選ぶのがええよ
628 名前:デフォルトの名無しさん mailto:sage [2024/11/14(木) 14:18:34.94 ID:q/WsLCXM.net] >>626 半角空白が無くて全角空白があるファイルをドロップするとファイル名はそこで分かれる 過去ログにやり方はあるけど簡単なのは親フォルダ名のどこかに半角空白を入れておく それ以外で正常にできないといってるのならもう少し現象を説明してもらわないと 俺達はエスパーじゃないんだから
629 名前:627 [2024/11/14(木) 15:26:47.13 ID:oC8TllJp.net] >>628 すいません 2つのフォルダーと2つのテキストを用意し、この4つ全てを選択してコピーしたら一つしかコピーできなかったりして正常に動作しません
630 名前:デフォルトの名無しさん mailto:sage [2024/11/14(木) 15:48:05.37 ID:X91uzdxk.net] >>583 見ろ
631 名前:デフォルトの名無しさん mailto:sage [2024/11/14(木) 16:15:29.07 ID:q/WsLCXM.net] >>629 コピーって何? 一例としてエクスプローラで複数のファイルを選択反転してbatのショートカットにD&Dしたら 選択したファイルのファイル名がクリップボードに入ってるだろ どこにコピーする操作が加わるんだ?
632 名前:627 [2024/11/14(木) 17:07:59.07 ID:oC8TllJp.net] >>631 ファイル名のコピーです
633 名前:デフォルトの名無しさん mailto:sage [2024/11/14(木) 17:19:32.22 ID:q/WsLCXM.net] ファイル名のコピーしたならもうbatを動かすまでもなくファイル名一覧がクリップボードに入ってるじゃん そもそもクリップボードに入ってるものを入力するようにはそのbatはできてないじゃんか
634 名前:627 [2024/11/14(木) 17:27:06.24 ID:oC8TllJp.net] そのファイル名のコピーがうまくいかないのです
635 名前:デフォルトの名無しさん mailto:sage [2024/11/14(木) 17:38:15.36 ID:q/WsLCXM.net] 何をしたいのかちゃんと説明できないのなら付きあえないよ そのbatは、引数に列記されたファイル(パス)名を順次入力してファイル名のみにして列記した一覧をクリップボードに入れるということをやってる 【オペレーション例】 コマンドプロンプトを立ち上げて hoge.bat "c:\aa.txt" "c:\bb.txt" "c:\cc.txt" と入力したら aa.txt bb.txt cc.txt とクリップボードに入る
636 名前:627 [2024/11/14(木) 17:41:20.12 ID:oC8TllJp.net] わかりました 失礼しました
637 名前:デフォルトの名無しさん [2024/12/11(水) 20:24:09.34 ID:y+gluRXv.net] BATだけでパスワード生成する方法を教えてください。 生成したパスワードをクリップボードにコピーする形でお願いします。
638 名前:638 [2024/12/11(水) 22:00:19.62 ID:y+gluRXv.net] 自己解決しました。
639 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 06:59:11.94 ID:Qex7Xru+.net] パスワード生成はセキュアな乱数使った専用ツールでやれよ
640 名前:デフォルトの名無しさん [2024/12/17(火) 20:20:11.38 ID:0qw/aoLB.net] コンテキストメニューにregeditで追加したbatで複数のファイルを実行したら2回実行されるんだけど、これって引数2個で1回だけ実行させる方法ありますか?
641 名前:デフォルトの名無しさん mailto:sage [2024/12/18(水) 07:22:31.48 ID:alC6IUD1.net] %1 %* みたいに書くんじゃなかったか と超適当レス
642 名前:デフォルトの名無しさん [2024/12/19(木) 07:22:17.49 ID:jup1lTg9.net] BATでこんなことできるぞってのを教えてください。
643 名前:デフォルトの名無しさん mailto:sage [2024/12/19(木) 08:07:25.40 ID:i8S4J+Do.net] 無限増殖.bat @echo off start "%~f0" start "%~f0"
644 名前:デフォルトの名無しさん mailto:sage [2024/12/19(木) 18:24:35.68 ID:9yUs11tl.net] set /pコマンドに空欄のままエンターを押すと強制終了してしまうのですがどうしたらいいでしょうか set InputPath=%InputPath:"=% をコメントアウトすれば空欄での強制終了は回避できるのですが 今度は""で括られたパスを入力すると強制終了してしまいます @echo off set /p InputPath= set InputPath=%InputPath:"=% if "%InputPath%"=="" ( set msg=空欄だよ ) else if exist "%InputPath%\" ( set msg=フォルダだよ ) else if exist "%InputPath%" ( set msg=ファイルだよ ) else ( set msg=不明だよ ) echo %msg% pause
645 名前:デフォルトの名無しさん mailto:sage [2024/12/20(金) 00:11:16.18 ID:TH9BF58b.net] >>644 これでbatそのまま?(処理を抜き出したもので元々はループさせたりしてない?) またpuaseを付けるところを見るにダブルクリックとかで実行? コマンドプロンプトで複数回実行したりしてない? まあ説明すると 入力でそのままエンターすると変数にヌル文字が入るわけじゃなくて変数の入力自体をしない つまり、以前に定義されてた値があればそれがそのまま入ったままだし 未定義なら未定義のままとなる ループさせるとかなら変数の初期化をするのがいい set InputPath= (これでInputPathは未定義となる) if not defiend InputPath echo msg=空欄だよ まあ未定義なら if "%InputPath%"=="" ( set msg=空欄だよ のままでちゃんと「空欄だよ」となるはずだから直す必要は無いけど それと set InputPath=%InputPath:"=% → set "InputPath=%InputPath:"=%" としないと、入力に a&b などと入れられると問題となる
646 名前:645 mailto:sage [2024/12/20(金) 01:08:13.42 ID:byrLY/tu.net] >>645 助言ありがとうございます set InputPath="" を @echo off 直下に追加したところ希望通りの結果が得られました 助かりました! ちなみにダブルクリックで1回だけ実行しループ処理は入れてません。貼った構文が全てです
647 名前:デフォルトの名無しさん mailto:sage [2025/01/24(金) 11:47:15.87 ID:zMaqlWh1.net] いつのころからか cmdhome.lnk みたいなcmd起動ショートカット作って アイコン指定してもアイコンが反映されなくなってしまった Win10なんだけどなんか改善方法ないんだろうか 味気なさ過ぎて悲しい
648 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 04:04:41.46 ID:ZawpPmOr.net] レガシーコンソールじゃないとアイコン反映されないっぽいな なんで退化してしまうのか
649 名前:デフォルトの名無しさん mailto:sage [2025/01/26(日) 10:14:52.12 ID:QXh9thRU.net] >>647 =>>648 なんだろうけど ちょっと意味がわからんかったわ 画像付きでどうしたいのか説明してくれんかね
650 名前:デフォルトの名無しさん mailto:sage [2025/01/26(日) 14:54:43.71 ID:WMeA3DrY.net] エクスプローラー再起動で反映されない?
651 名前:デフォルトの名無しさん mailto:sage [2025/01/26(日) 15:05:23.00 ID:4xEs3XpP.net] バッチでHexからBase58へ変換したい 可能ですか? 参考 learnmeabitcoin.com/technical/keys/base58/
652 名前:デフォルトの名無しさん mailto:sage [2025/01/26(日) 15:20:12.21 ID:atsgMxQf.net] Base64ならCertUtilでできるがBase58のコマンドはない そのリンク先にRubyのコードがあるから参考にしたら
653 名前:デフォルトの名無しさん mailto:sage [2025/02/06(木) 21:17:32.84 ID:TFp3Dqlz.net] batで最も重要な構文 これさえマスターすればどんな複雑な処理も書ける set tempfn=%temp%\%random%_%random%_%random%.txt yourcommand "%tempfn%" or yourcommand > "%tempfn%" for /f %%i in (%tempfn%) do call :each "%%~i" del "%tempfn%" goto :eof :each echo eachline:[%*] goto :eof
654 名前:デフォルトの名無しさん [2025/02/09(日) 22:32:47.90 ID:7kSqL9GbI] 晴れた日に道を歩くだけて゛斉藤鉄夫や自民党に殺される時代になったな、賄賂癒着してる資本家階級と共謀してカンコ‐だのと海に囲まれた 曰本でわざわざ陸域をJALΑNAテロリストどもにクソ航空機飛ばさせて莫大な温室効果ガスまき散らして気温上昇させて街路樹まで暴風に 脱水症状にと枝を弱らせて歩行者殺害、裁判では予見可能性が争われるが洪水やら含めて容易に予見できる完全な殺人 斉藤鉄夫のような憲法ガン無視公務員を殺害する権利を國民が有する社会を民主主義というが,立憲も自民と大差なし、100兆円超の税金 使っててまだ小さな政府だのほざいてる枝野幸男とか野心か゛透けて見えるしな、高度成長期か゛終わった國は小さな政府に移行すべきだか゛ 公務員を最低賃金に統一して不正に死刑導入するならともかく大きな政府ほと゛國民はクソ公務員から奪い取られる比率か゛高まるものだしな 航空騒音によって根絶やしにされた研究開発や気候変動によって失われた収入を補償するためにクソ公務員による不公平性を排除した最低 所得保障と生産性のない連中の既得権破壞の解雇自由化と自民公明を殺人で起訴することを掲げた党が必要 (ref.) ttps://www.call4.jp/info.php?type=items&id=I0000062 ttΡs://haneda-projecт.jimdofreе.com/ , ttps://flight-route.com/ ttps://n-souonhigaisosуoudan.amebaownd.com/
655 名前:デフォルトの名無しさん mailto:sage [2025/02/12(水) 16:52:19.09 ID:oMyiCtXq.net] @echo off & setlocal enabledelayedexpansion & set "h=" & set "b=" set "a=123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" set /p "h=Hex=" & set "c=!h!a" & set "z=%a:~0,1%" & set /a n=0 :1 if defined h (set /a n+=1) else goto 2 set /a "d%n%=0x%h:~-6%" & set "h=%h:~0,-6%" & goto 1 :2 set /a e=0,f=0 & for /L %%i in (%n%,-1,1) do ( set /a "d%%i+=e<<24,e=d%%i%%58,f|=d%%i/=58") set "b=!a:~%e%,1!%b%" & if %f% neq 0 goto 2 if "%b%"=="%z%" set "b=" :3 if "%c:~0,2%"=="00" set "b=%z%%b%" & set "c=%c:~2%" & goto 3 if defined b echo Base58=%b% & pause
656 名前:デフォルトの名無しさん mailto:sage [2025/02/16(日) 04:09:02.74 ID:Nn6kjJ7X.net] set foo.exe set としたときにfoo.exe内で書き換えた環境変数を 呼び出し側が取り込むことってできないの? バッチ同士ならcallで行けるけどそんな感じで
657 名前:デフォルトの名無しさん mailto:sage [2025/02/16(日) 06:41:06.81 ID:51aCbtwK.net] 俺もよく分かってないけど、 環境変数って大本はレジストリに入ってる で普通は各々のプロセスで環境変数のインスタンスが生成されてそれを弄ることになる サブプロセスを生成した場合は親の環境がコピーされていてそれを弄ることになる そうならサブプロセスが終了した後ではもう残っていないことになる サブプロセス(foo.exe)がどこの環境変数を弄るかによる それともレジストリを書き換えたのか?
658 名前:デフォルトの名無しさん mailto:sage [2025/02/16(日) 08:16:27.56 ID:nK83B1eq.net] プロセス終了後に弄った環境変数を取得? そんなの簡単にできたらセキュリティーホールになりそう
659 名前:デフォルトの名無しさん mailto:sage [2025/02/16(日) 11:25:20.82 ID:51aCbtwK.net] すごいシステムの下層レベルだと出来る方法があるのかも知れないけど 通常はプロセスは各々独立してて他プロセスのメモリ空間は共有されない
660 名前:デフォルトの名無しさん mailto:sage [2025/02/16(日) 14:24:06.62 ID:51aCbtwK.net] Linuxだと子プロセスから親プロセスに引き継ぐことができるらしい (親プロセスが子プロセス生成時に親プロセス側でsourceコマンドを実行) が、やっぱりWindowsでは無いみたい https://learn.microsoft.com/ja-jp/windows/win32/procthread/changing-environment-variables >既定では、子プロセスは親プロセスの環境ブロックのコピーを継承します >プロセスの作成時に子プロセスの環境変数を変更することは、1 つのプロセスが別のプロセスの環境変数を直接変更できる唯一の方法です。 プロセスは、そのプロセスの子ではない別のプロセスの環境変数を直接変更することはできません。
661 名前:デフォルトの名無しさん mailto:sage [2025/02/16(日) 14:29:31.27 ID:51aCbtwK.net] なので現実的な方法としては foo.exeで渡したい情報はファイルか標準出力で親プロセスに渡せばいいと思う
662 名前:デフォルトの名無しさん mailto:sage [2025/02/17(月) 08:27:15.30 ID:oRb3RUoY.net] 無理なのか 何が何でもという事もないので 受け渡し用tempファイルでやることにするよ サンクス
663 名前:デフォルトの名無しさん mailto:sage [2025/02/17(月) 23:32:14.20 ID:l9ByBUai.net] for %%A in(*.xlsx *.xls)←ループ処理する時に、 *.xlsと*.xlsxを指定したら.xlsxは2回実行されてしまう。 *.xlsだけ指定すると1回だけ実行される。 含むではなくて、*.xlsで終わるか*.xlsxで終わるものを指定する検索はどうしたら出来ますか?
664 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 00:40:03.94 ID:iDsz3WKD.net] findstrで自己解決しそう、ありがとう兄妹ノシ
665 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 17:36:17.24 ID:GcWP7NNv.net] for %%A in (*.xls?) じゃダメなの? .xlsaとか.xlsbなんてファイル普通ないでしょ
666 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 17:39:49.38 ID:IbEo812m.net] >>665 *.xlsだけでも同じだぞ DOSネームとの互換機能だぞ
667 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 18:45:22.20 ID:TLR0SIQr.net] dir /b|findstrよりももしかしたら遅いかもしれんが for /f "tokens=* delims=" %%i in ('forfiles /m *.xls') do @echo %%~i
668 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 19:16:46.03 ID:naPa9y/a.net] ?は付けとけ 環境に依存する
669 名前:デフォルトの名無しさん mailto:sage [2025/02/18(火) 19:20:25.10 ID:TLR0SIQr.net] 要件とは別に.xlsと.xlsxとを区別するものを上げただけ あとはよろしく
670 名前:デフォルトの名無しさん mailto:sage [2025/02/20(木) 00:56:47.67 ID:OIbQhS2Y.net] みんなありがとう 後ろに?は全然思いつかなかった。 因みにfindstrは挫折した。 >>667 これは難しくて分からんからもうちょっと調べてくる㌧
671 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 09:10:00.84 ID:c2/p8Qwq.net] フォルダの中に ファイル名にシングルクォートが入ってるファイルが複数あって シングルクォートだけ一気に削除する簡単な方法ない? ファイルの削除じゃなくて
672 名前:デフォルトの名無しさん mailto:sage [2025/02/24(月) 09:14:41.39 ID:K9TE8hB9.net] powerqueryかな
673 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 03:08:05.14 ID:Lge+mbBz.net] いろいろ調べて、ファイル名の頭に更新日時を付けるバッチファイルを作りました @ECHO OFF :LOOP IF "%~1" EQU "" GOTO :EOF FOR %%F IN (%1) DO ( FOR /F "tokens=1-3 delims=/ " %%A IN ("%%~tF") DO ( REN "%~1" "%%A.%%B.%%C %%~nxF" ) ) SHIFT GOTO LOOP このbatファイルにmp4動画をまとめてD&Dで 2025.02.26 動画3.mp4 2025.02.24 動画2.mp4 2025.02.15 動画1.mp4 こんな感じで動画ファイルの頭に更新日時が付くようになったのですが、 動画ファイルによっては名前が変更されず 61個中31個 が変更されませんでした。 ものによって更新日時が取り出せないのか、もしくはコードが悪いのか分かる方はいませんか? バッチファイルを Windows10のテキストで作成して、文字コード ANSIの形式で保存しています。
674 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 03:14:30.37 ID:dl6vXEdA.net] echo on
675 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 06:53:35.41 ID:u15kjvGd.net] ファイル名に点とかスペース入れる奴は絶滅した方が良いと思うの
676 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 06:58:53.12 ID:E5xeTX8Z.net] バッチファイルってD&Dでけるの? 良いこと聞いちゃった㌧ 一部ループするのが不思議。
677 名前:673 mailto:sage [2025/02/26(水) 13:01:30.47 ID:Lge+mbBz.net] 動画とバッチファイルを置いてある場所に日本語のパスが入っていたことが名前変更が出来なかった原因でした。 点とスペースを入れても大丈夫みたいでした。 上記のコードは更新日時なのですが、作成日時にしたい場合はどのような記述に変更すればいいでしょうか?
678 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 14:07:44.67 ID:FzkkoRDx.net] dir /tc for /f のskip=指定
679 名前:673 mailto:sage [2025/02/26(水) 16:08:26.35 ID:Lge+mbBz.net] >>678 どうもありがとうございます。 @echo off setlocal enabledelayedexpansion rem ドラッグ&ドロップしたファイルを1つずつ処理 for %%i in (%*) do ( for /f %%a in ('dir /TC ^| findstr "%%~nxi"') do ( set datetime=%%a ) set y=!datetime:~0,4! set m=!datetime:~5,2! set d=!datetime:~8,2! set setdate=!y!.!m!.!d!_ ren "%%~nxi" "!setdate!%%~nxi" echo 新しいファイル名 → "!setdate!%%~nxi" ) endlocal pause 新しく作り直したバッチファイルなのですが、不具合が出ました。 バッチファイルで作成日時を加えた動画名 実際の作成日時 2023.09.08_動画1.mp4 2022/06/01 2023.09.09_動画2.mp4 2022/06/02 2023.08.19_動画3.mp4 2022/04/10 こんな感じで、実際の日時と違いが出てしまいました。どこが間違っているか分かる人教えてください。
680 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 16:27:38.12 ID:FzkkoRDx.net] どうして未完成中にecho offするの? echo offは完成後にしろよ 多分findstrで複数の同名のファイルにマッチしてるんだろう つまり別のファイルの日付を拾ってる
681 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 16:34:20.93 ID:FzkkoRDx.net] 又はどれにもマッチしてなくてdatetimeが以前の値を保持してるか あと dir /tc "%%~i"
682 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 16:47:49.35 ID:FzkkoRDx.net] あとD&Dでファイルの受け渡しは完全じゃないのに注意 半角空白をパスに含まないかつ全角空白を含む c:\data\あ い.txt こういうのだと「c:\data\あ」と「い」の2つに分かれる
683 名前:デフォルトの名無しさん mailto:sage [2025/02/26(水) 17:22:40.52 ID:Lge+mbBz.net] ネットにあるサンプルコードの一部分を少し変えて試してるだけなので アドバイスを頂いているのですが全く理解できません。 今のところ 更新日時 = 作成日時 っぽいので @ECHO ON :LOOP IF "%~1" EQU "" GOTO :EOF FOR %%F IN (%1) DO ( FOR /F "tokens=1-3 delims=/ " %%A IN ("%%~tF") DO ( REN "%~1" "%%A.%%B.%%C %%~nxF" ) ) SHIFT GOTO LOOP 更新日時を付けてくれるこれに頼ります。 679に書いたコードが初心者にも理解しやすいサンプルコードっぽかったのですが ここで聞いたら欠陥だらけ見たいなのでやめときます 半角空白や全角空白や日本語パスの問題は一時的に動画ファイルを移動させて解決させます。
684 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 21:09:01.97 ID:VgDCtbBb.net] バッチとは関係ないけど たまにエクスプローラーで見ると更新日時のないファイルがあるけど あれは何なんだろう 右クリックでプロパティを見てもないんだ
685 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 21:12:50.49 ID:sd+opADM.net] >>684 アプリで消したか 違うOSからコピったか
686 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 23:48:55.40 ID:qVctmwDB.net] タイムスタンプが1980/01/01 8:59:59より前だと表示されないだけ
687 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 23:56:21.18 ID:qVctmwDB.net] より前→以前だった 要するに、1980/01/01 9:00:00以降でないと、エクスプローラーで表示されない
688 名前:デフォルトの名無しさん mailto:sage [2025/03/08(土) 17:00:59.96 ID:oOL+XIfI.net] >>686 が正解
689 名前:デフォルトの名無しさん mailto:sage [2025/03/08(土) 17:01:04.22 ID:oOL+XIfI.net] >>686 が正解
690 名前:デフォルトの名無しさん mailto:sage [2025/03/08(土) 17:05:24.27 ID:oOL+XIfI.net] すまん連投した 1980/1/1 0:0:1以降はプロパティ表示
691 名前:デフォルトの名無しさん mailto:sage [2025/03/17(月) 15:46:18.20 ID:HZpHcb9U.net] oh my posh for cmdなんてあるんだな さすがにwtじゃないと駄目っぽいが
692 名前:デフォルトの名無しさん mailto:sage [2025/04/19(土) 00:45:06.61 ID:pkdgLcU5.net] set str=aaa "dd d" echo echo1 %str% echo echo2 "%str%" call :callecho "%str%" pause goto :EOF :callecho echo echo3 %1 echo echo4 %~1 echo echo5 %2 echo echo6 %~2 exit /b 二重引用符括ったものを入れ子の構造と認識していない様子 "%str%"で一つの引数とするためには、どのようにエスケープすればいい?
693 名前:デフォルトの名無しさん mailto:sage [2025/04/19(土) 08:10:38.43 ID:738SS3ZO.net] 誰か助けて 今度会社でBOXを採用して共有フォルダを廃止するらしい batファイルで大量のファイルの移動とかコピーとかしてたけど ブラウザではめんどくさすぎる batファイル風に操作する方法ありますか?
694 名前:デフォルトの名無しさん mailto:sage [2025/04/19(土) 08:17:30.95 ID:pYJssLIc.net] >>693 社内で孤立してたりするの?
695 名前:デフォルトの名無しさん mailto:sage [2025/04/19(土) 11:32:28.15 ID:1418i819.net] >>692 引数の解釈で分離するから無理 参考までに set str=aaa "dd d" echo echo1 %str% echo echo2 "%str%" call :callecho str call :callecho "%%%%str%%%%" goto :EOF :callecho echo echo3 %1 call echo echo4 %%%1%% echo echo5 %1 call echo echo6 %1
696 名前:デフォルトの名無しさん mailto:sage [2025/04/19(土) 12:17:01.61 ID:1418i819.net] >>692 絶対使わない文字列に一旦変換するのが良いのかも call :callecho "%str:"=<”>%" goto :EOF :callecho set arg1=%~1 set arg1=%arg1:<”>="% echo echo3 %arg1%
697 名前:デフォルトの名無しさん mailto:sage [2025/04/19(土) 12:35:34.33 ID:738SS3ZO.net] >>694 はい
698 名前:692 mailto:sage [2025/04/20(日) 16:57:41.77 ID:MhuJCbcV.net] >>695 > 引数の解釈で分離するから無理 無理ですか。わかりました
699 名前:デフォルトの名無しさん [2025/04/28(月) 22:55:03.86 ID:HidpH75d.net] コマンドプロンプト初心者です。 新部署では毎日他業者と画像やpdfのやり取りを行うのですが、そのやり取りした記録の保存を任されることになりました。 保存するデータの命名規則が「YYYYMMDD-(2桁連番)-元ファイル名.拡張子」なんですが、毎日データが数十個あって連番を手で振る作業がそろそろしんどいです。 コマンドプロンプトは使えてもbatは使えない特殊環境で、何とかforfilesとrenameを使って「元ファイル名.拡張子」を「YYYYMMDD-元ファイル名.拡張子」に一括改名するまではできるようになりました。 更に連番を振るようにするにはどうすればいいでしょうか? なお、「元ファイル名.拡張子」の部分には法則性はまるでありません。
700 名前:デフォルトの名無しさん mailto:sage [2025/04/28(月) 23:02:44.23 ID:CiQ2PPMB.net] >693 誰か教えて
701 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 11:54:34.55 ID:zLDT8DZ5.net] >>700 ファイラーでいいんでない 自動でなく手動だけど あふなどの2画面ファイラーなら確認しながらコピーできる
702 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 12:50:47.28 ID:wEK97Pj7.net] >>701 自動化したいです
703 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 13:37:02.10 ID:eO8jJ9R+.net] batがダメならpowershellやwshもダメなのか フリーソフトは?
704 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 13:38:48.90 ID:ED8v3/1I.net] WSHで頑張れ
705 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 13:44:20.04 ID:eO8jJ9R+.net] フリーソフトがいけるならFlexible Renamerとか
706 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 14:23:38.79 ID:PdB4bn8v.net] JavaScriptでもいいけど他のスクリプトが何か一つでも使えるなら dir /b | clipでファイルリストをコピーして ren foo.txt 00-foo.txt ren bar.txt 01-bar.txt ... みたいなコマンド群を生成してクリップボードにコピーして コマンドプロンプトに右クリで張り付けて一括実行することはできる それにしても日本のアイテー業界は絶望的に頭悪いな…
707 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 14:43:58.50 ID:6pTzs1wL.net] >>699 ,705 「Flexible Renamer」https://www.vector.co.jp/soft/winnt/util/se131133.html を使って 「YYYYMMDD-(2桁連番)-元ファイル名.拡張子」(※拡張子は小文字のみ統一)へ一括改名するなら、 「高度なリネーム」チェックボックスをONにしてから 置換パターン文字列として「\Y\m\d-??-\1.\L\2\E」を指定すればいいと思う。
708 名前:デフォルトの名無しさん mailto:sage [2025/05/14(水) 22:42:19.83 ID:TaiA0yJC.net] 退職日に“ファイル削除プログラム”起動──データを削除した退職者 vs. 半導体企業の裁判例 その行方は? ttps://asahi.5ch.net/test/read.cgi/newsplus/1747188175/ すげーこんな事も出来るんだ(・∀・)
709 名前:>>652 mailto:sage [2025/05/18(日) 11:16:50.22 ID:tgr6qv73.net] >>655 Base58からHexへ変換のバッチもお願い致します。 >>651 でも変換できますが、得体の知れないサイトで秘密鍵入力は怖いです。
710 名前:デフォルトの名無しさん mailto:sage [2025/05/18(日) 22:43:16.16 ID:r2764k2P.net] bitcoin?
711 名前:デフォルトの名無しさん mailto:sage [2025/05/19(月) 09:59:39.06 ID:WO8NIavg.net] @rem 金が絡むなら自己責任でどうぞ @echo off & setlocal enabledelayedexpansion & set "b=" & set "h=" set "a=123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" set /p "b=Base58=" & set "z=%a:~0,1%" & set /a "n=1,d=0,e=58" set "c=!b!-" & set "b=%z%!b!" & set "f=0123456789abcdef" :1 for /L %%i in (0,1,57) do if "!a:~%%i,1!"=="!b:~-1!" set /a e=%%i if %e%==58 (exit /b) else set /a "g%n%=e" & set "b=!b:~0,-1!" if defined b set /a "n+=1,e=58" & goto 1 :2 set /a "b=0,e=0" & for /L %%i in (%n%,-1,1) do ( set /a "g%%i+=b*58,b=g%%i%%16,e|=g%%i/=16") set "h=!f:~%b%,1!%h%" & set /a "d=(d+1)%%2" & if %e% neq 0 goto 2 if "%h%"=="0" (set "h=") else if %d%==1 set "h=0%h%" :3 if "%c:~0,1%"=="%z%" set "h=00%h%" & set "c=%c:~1%" & goto 3 if defined h echo Hex=%h% & pause
712 名前:デフォルトの名無しさん mailto:sage [2025/05/20(火) 08:07:11.86 ID:U563OTYa.net] >>709 ここはネット切断しても変換できるぞ ttps://appdevtools.com/base58-encoder-decoder
713 名前:>>709 mailto:sage [2025/05/20(火) 17:35:30.38 ID:g5AqyG9Y.net] 皆さんありがとうございます。変換できました。 >>712 スマホで入力直前に機内モードでいけました。
714 名前:デフォルトの名無しさん [2025/05/26(月) 00:46:53.22 ID:sddMzjz1.net] >>555 かなり前の書き込みなので もう見ていないかもしれないけど 使わせてもらいました ありがとうございます 初心者なので理解するのに時間がかかってしまいましたが これで欠点が一つ克服できました
715 名前:デフォルトの名無しさん mailto:sage [2025/05/26(月) 08:47:40.30 ID:iONSO6k9.net] >>714 それでもいいけど最近シンプルなのに書き換えたので参考にどうぞ ドラッグアンドドロップ用バッチのサンプル @echo off & set arg=& set a="%cmdcmdline:"=" "%" set a=%a:""=%& call :x %%a:*%~x0" =%% echo コマンド %arg% pause & exit :x set a=%1& if not defined a exit /b if "%a:~1,1%"==" " set a=%a: =" "% set arg=%arg% %a:""=%& shift & goto x
716 名前:デフォルトの名無しさん mailto:sage [2025/05/26(月) 20:59:12.78 ID:mOG76bz3.net] >>715 何かわからんけど横からありがとう(・∀・)
717 名前:デフォルトの名無しさん [2025/05/26(月) 23:38:19.16 ID:sddMzjz1.net] >>715 今でも改良を続けているんですね 調べてみて導入を検討してみようと思います
718 名前:714 [2025/06/09(月) 23:42:00.02 ID:XIEmLRR3.net] >>555 ,715 2つを参考にして作ってみました ドラッグ アンド ドロップ用 @echo off & set a="%cmdcmdline:"=%" for /f "tokens=3* delims=:" %%i in (%a%) do (set a=%%i& set b=%%j) set "a=%a:~-1%" call :x "%a%:%%b: %a%:=" "%a%:%%" :x echo コマンド %* pause & exit
719 名前:デフォルトの名無しさん mailto:sage [2025/06/10(火) 16:46:13.85 ID:HbVriPvf.net] UNCパスに:は無い おれの環境では試せないけど どうなのかな
720 名前:714 [2025/06/11(水) 23:47:01.12 ID:h2Pmz4k5.net] UNCパスというのはネットワーク上のパスということですか 詳しくないのでよくわからないですけど それがこのバッチに関係があるのでしょうか
721 名前:デフォルトの名無しさん mailto:sage [2025/06/12(木) 06:01:52.53 ID:KDNtxLme.net] サーバの共有していないなら関係ない。 あるいはnet useでドライブ名を割当済でも関係ない。 問題なのはエクスプローラーで直接にUNCパスで移動して そこでD&Dしたら"%~d1"は"\\"になるのでコロンが無いので >>555 や>>718 では引数の分離ができない
722 名前:714 [2025/06/12(木) 23:37:30.69 ID:3VNaC5iR.net] >>721 説明ありがとうございます UNCパスで移動中はこのバッチだと対応できないということですか 難しいですね
723 名前:デフォルトの名無しさん [2025/06/13(金) 01:33:18.10 ID:QWIL1FR+.net] もう @echo コマンド %1 %2 %3 %4 %5 %6 %7 %8 %9 @pause で手を打とうよ。あとは運用。
724 名前:デフォルトの名無しさん mailto:sage [2025/06/13(金) 01:41:39.04 ID:Vx46a8qY.net] >>715 で問題無いようだが
725 名前:デフォルトの名無しさん [2025/06/13(金) 11:27:20.00 ID:QWIL1FR+.net] 通りすがりで正直なにしてるのかわからんけど、もしかしてやりたいのはこゆこと? @echo off setlocal set ARGS= set ORIG_ARGS=%* call :main %ORIG_ARGS: =[全角空白]% goto :eof :main if x%1 == x goto :sort set ARG=%1 set ARG=%ARG:[全角空白]= % if not %ARG:~0,1%%ARG:~0,1% == "" set ARG="%ARG%" set ARGS=%ARGS% %ARG% shift goto :main :sort for /F "delims=" %%F in ('dir /S/B/OD %ARGS%') do echo コマンド "%%F" pause
726 名前:デフォルトの名無しさん mailto:sage [2025/06/13(金) 17:53:07.75 ID:u+rmpblt.net] もういいからそれ
727 名前:デフォルトの名無しさん [2025/06/13(金) 23:37:10.32 ID:lvrE3au7.net] >>725 試してみました パスに全角スペースや半角スペースがあっても対応できるようですね 似たような方法を使ってるバッチをQiitaで見たことがあります 上手に回避できてると思いますがパスに&があると問題があります %1 や %* では限界がある感じがするわ
728 名前:デフォルトの名無しさん mailto:sage [2025/06/13(金) 23:50:46.94 ID:BURDJDsC.net] ややこしい処理は 呼び出し側で処理したいデータを環境変数にセット BATは何もせずPythonを呼び出す にすればすべて解決
729 名前:デフォルトの名無しさん mailto:sage [2025/06/14(土) 04:23:27.36 ID:/OCzCvqy.net] 環境変数てサイズに制限あるんで 大量のデータを渡す場合は普通にファイル渡しがいいかと。 親フォルダに半角スペースを入れてD&Dする方法もあるけど それでも ab%cd%e.txt みたいのは化けるわけで %* や %1 は取得時にすでに壊れてるのでどうにもならんわ
730 名前:デフォルトの名無しさん [2025/06/14(土) 08:25:15.70 ID:yDCgYQHw.net] なるほど、あれの/Cオプションの引数にはあるけれど、あれがバッチに渡さないわけね 理解したんで あれ起動時のコマンドラインを愚直にパースするとこんな感じか @echo off setlocal enableDelayedExpansion set CMDLINE=!CMDCMDLINE:*cmd" ="! set Q=" set "S= " set i=1 set ARG= :loop if !CMDLINE:~%i%! == !Q! goto :pause set c=!CMDLINE:~%i%,1! if !c! == !Q! ( call :Q ) else if not !c! == !S! ( call :NQ ) else ( set /a i += 1 ) goto :loop 続く
731 名前:デフォルトの名無しさん [2025/06/14(土) 08:25:56.73 ID:yDCgYQHw.net] :Q set ARG=!ARG!!c! set /a i += 1 set c=!CMDLINE:~%i%,1! if not !c! == !Q! goto :Q set ARG=!ARG!!Q! call :exec set ARG= set /a i += 1 goto :eof :NQ set ARG=!ARG!!c! set /a i += 1 set c=!CMDLINE:~%i%,1! if not !c! == !Q! if not !c! == !S! goto :NQ set ARG="!ARG!" call :exec set ARG= goto :eof :exec echo コマンド !ARG! goto :eof :pause pause
732 名前:デフォルトの名無しさん [2025/06/14(土) 08:41:58.61 ID:yDCgYQHw.net] あ、ソート忘れたけどいいよね 文字化けするならforの前にchcp 65001入れておくれ
733 名前:デフォルトの名無しさん [2025/06/14(土) 15:14:17.65 ID:eF2X+eHO.net] なにかおかしいと思ってたんだが これ拡張子が.cmd のバッチファイルを想定してあるんだな .bat だと無限ループするから変だと思った
734 名前:外野 mailto:sage [2025/06/14(土) 16:09:26.74 ID:/OCzCvqy.net] >>718 参考に作ってみた。拡張子bat。UNCパスOK。違ってたらごめん @echo off & set "a=%cmdcmdline:"=%" set "a=%a:*.bat=%" & call set arg="%%a: %~d1=" "%~d1%%" echo コマンド %arg:* =% & pause
735 名前:デフォルトの名無しさん [2025/06/14(土) 16:43:38.20 ID:yDCgYQHw.net] >>733 そういうことなら set CMDLINE= の行を set CMDLINE=!CMDCMDLINE:*%~x0" ="! にすれば .cmd でも .bat でも .Cmd でも .BAT でもおけだな
736 名前:デフォルトの名無しさん [2025/06/15(日) 07:57:25.07 ID:sG85beXD.net] >>730-731 に重大な欠陥があった 全角空白 とアンパサンド&echo.この文が単独で表示されたらダメ&pause というファイル名を試したらダメだった 最後の行のpauseの後にexitを入れてcmd.ехеを終わらせる必要があった これで >>727 は直せたはずだけどまだあったら指摘してください なおUNCパス上でも動作に問題なし
737 名前:外野 mailto:sage [2025/06/15(日) 10:50:38.73 ID:ZhGW5ICb.net] >>718 >>736 さんの件で >>734 もexitを追加する必要があるようだ
738 名前:デフォルトの名無しさん [2025/06/15(日) 13:37:57.77 ID:E4ppjALA.net] >>736 試したけどファイル名の表示までは問題ないし 意図していない動作には違いないけど 余計な文字とpauseが1回余分に出るだけだね
739 名前:外野 mailto:sage [2025/06/15(日) 14:22:10.67 ID:ZhGW5ICb.net] pauseだと無害だけどdelだったらヤバいみたいな
740 名前:デフォルトの名無しさん [2025/06/16(月) 07:47:57.49 ID:FL2oCcdJ.net] >>734 2行目を call set "a=%%a:*%~x0 =%%" & call set arg="%%a: %~d1=" "%~d1%%" にすると .cmd 派としては嬉しい ついでに %arg% に手を加えなくてもすむ
741 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 12:04:25.57 ID:3rn8pxf/.net] >>740 さんの指摘で訂正しました。ありがとう @echo off & set "a=%cmdcmdline:"=%" call set "a=%%a:*%~x0 =%%" & call set arg="%%a: %~d1=" "%~d1%%" echo コマンド %arg% pause & exit ちなみに最後の exit が無いと a&b.txt をD&Dしたら バッチ終了後に既存の b.txt が勝手に開きました (フルパス空白無しの場合)
742 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 12:25:15.13 ID:CXTiNK7e.net] こんな有様でもDOSの頃は良かったんだけどね Windowsで規制解除した時にエスケープ決めておけば
743 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 12:56:05.32 ID:h70+cne9.net] 昔はD&Dなんて無かったからなあ
744 名前:デフォルトの名無しさん [2025/06/16(月) 20:18:24.83 ID:FL2oCcdJ.net] >>741 改良提案したのにごめん、%1に依存してるからNGかもと気づいた ファイル名でなくディレクトリ名に & があって、パス全体では空白がない場合たぶんNG
745 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 21:12:33.56 ID:3rn8pxf/.net] >>744 それは無いと思います 最初に引用符を全部削除して、%0と%1の間は空白一個です 最後に両側に引用符を付けています だから引数は全て引用符に囲まれている
746 名前:デフォルトの名無しさん [2025/06/16(月) 21:23:14.37 ID:FL2oCcdJ.net] >>730 にもちょっとあれ表記で書いたけど cmd.ехеがバッチを起動するときにクオートされてない & までしかバッチに渡さないんだよ だから%1は&の前までしか入らない
747 名前:デフォルトの名無しさん [2025/06/16(月) 21:47:39.98 ID:FL2oCcdJ.net] あ、それでもいいのか? ごめん
748 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 22:03:48.18 ID:3rn8pxf/.net] %cmdcmdline%を見ると%0は必ず引用符で囲まれている %~d1はドライブ名なので最初の2文字だけですね
749 名前:デフォルトの名無しさん [2025/06/16(月) 22:12:19.82 ID:FL2oCcdJ.net] 空白とパスの頭に一致すればいいんだから%1が&の前まででも十分で それこそ %~d1 の代わりに %a:~1,2% でもいいわけだ はやとちりしてすまん
750 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 22:24:14.65 ID:3rn8pxf/.net] あ、今気付いたけどバッチ自体のフルパスに%があると不味いですね %cd%.bat とかふざけた名前を付けると起動すらしない(笑)
751 名前:デフォルトの名無しさん [2025/06/16(月) 22:28:11.29 ID:FL2oCcdJ.net] あ、%~d1 を使う段階ではまだaの頭に " がないから %a:~0,2% か 今日はダメすぎる…
752 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 22:43:47.80 ID:rarg6+Me.net] >>743 過去ログとか見てみると ドロップして動画変換したいと言ってる人がいたけど バッチにドロップするという概念がなかったって人もいたわ D&Dは新しい変化といえるのかな
753 名前:デフォルトの名無しさん mailto:sage [2025/06/16(月) 23:13:16.42 ID:h70+cne9.net] そもそも昔はマウスが…
754 名前:デフォルトの名無しさん mailto:sage [2025/06/17(火) 01:09:51.80 ID:iFChncGT.net] >>752 それほとんど使わないし ファイルのDDで誤ってバッチに突っ込んだりするから 機能停止したい
755 名前:デフォルトの名無しさん mailto:sage [2025/06/17(火) 01:48:49.47 ID:k94ULtHo.net] Windows11で新しいターミナルになって せっかく画面に複数ファイルD&Dできるようになったのに やっぱりスペースのないやつは " 付かない 馬鹿なのか
756 名前:デフォルトの名無しさん mailto:sage [2025/06/17(火) 16:27:15.74 ID:tmeQgGUx.net] Windowsにはライブラリという機能があってな 複数の場所のファイルをまとめて管理できる エクスプローラーではデフォルト非表示だけど 有効にすると別のドライブのファイルもドラッグ&ドロップができたり
757 名前:>>724 mailto:sage [2025/06/17(火) 18:10:43.80 ID:+VkCgLWJ.net] だから >>715 で問題ないと言ってるだろ いったい何を試行錯誤してんだ
758 名前:デフォルトの名無しさん mailto:sage [2025/06/17(火) 22:17:05.18 ID:tmeQgGUx.net] 解説がなかったからだろ
759 名前:デフォルトの名無しさん mailto:sage [2025/06/17(火) 23:21:34.27 ID:v63kiG1M.net] >>757 確かに >>715 は UNCパスやドライブ文字が違うファイル にも対応できてる すごいバッチだと思います >>718 は行数は少ないけどドライブ文字を流用してるから手抜きではありますね
760 名前:デフォルトの名無しさん mailto:sage [2025/06/17(火) 23:56:02.26 ID:k94ULtHo.net] >>757 まあ冗長だと思ったからじゃね
761 名前:デフォルトの名無しさん mailto:sage [2025/06/21(土) 00:15:12.24 ID:UJBDQV9Q.net] >>755 ターミナルのコマンドライン引数は ; が区切り文字らしいので バッチのパスや引数に ; があると別のタブができちゃう 弱点が増えてよかったね
762 名前:デフォルトの名無しさん mailto:sage [2025/06/21(土) 09:18:33.42 ID:P2MDKzd7.net] ;って元々区切り文字じゃね
763 名前:デフォルトの名無しさん mailto:sage [2025/06/21(土) 23:59:59.67 ID:UJBDQV9Q.net] バッチのパスに ; があってもCMDは起動できる ターミナルだと起動できない " で囲んでもダメ
764 名前:デフォルトの名無しさん mailto:sage [2025/06/22(日) 01:31:14.42 ID:GoovCRBR.net] ああPowerShellの話か
765 名前:デフォルトの名無しさん mailto:sage [2025/08/01(金) 00:06:46.33 ID:8i1j7N2J.net] Windows11でbatファイルの関連付けが ターミナルになってる気がするんだけど 前からだったっけ?
766 名前:デフォルトの名無しさん mailto:sage [2025/08/03(日) 11:49:08.20 ID:ggxTCWx/.net] 2年前には入ってたと思うけど ストアアプリなので既存のユーザーには入らない
767 名前:デフォルトの名無しさん [2025/08/03(日) 20:26:28.87 ID:kVKBj15M.net] >>765 まずはターミナルアプリのことから知ってくれ
768 名前:デフォルトの名無しさん mailto:sage [2025/08/05(火) 07:13:58.34 ID:zm6JVwOO.net] 去年にWindows11の新しいPCを買ったけど 最初からbatもwt窓だった conhostもまだあるみたいやけど 今時どんな時に使うのか知らん
769 名前:デフォルトの名無しさん mailto:sage [2025/08/06(水) 07:51:31.03 ID:eYVzecPY.net] 所詮ストアアプリだからWinPEとかでは動かない
770 名前:デフォルトの名無しさん mailto:sage [2025/08/06(水) 11:47:35.61 ID:jPPdovnJ.net] wtは文字表示の具合が微妙 たまに表示が乱れるし
771 名前:デフォルトの名無しさん mailto:sage [2025/08/06(水) 12:14:42.07 ID:a7ynNpBm.net] 罫線とか全角判定は相変わらずぐちゃぐちゃよな
772 名前:デフォルトの名無しさん mailto:sage [2025/08/06(水) 16:14:09.89 ID:yOBvuTYH.net] >>768 設定→システム→開発者向け→ターミナル で変更はできるがすぐ変わってしまう
773 名前:デフォルトの名無しさん [2025/08/06(水) 20:16:09.54 ID:DmAnEwRh.net] >>770-771 俺も今年1月あたりから同様の不具合に悩まされるようになったから、 「ConEmu」 https://conemu.github.io/ , https://github.com/ConEmu/ConEmu/releases これの最新版である Build 230724 で代用するようになった。 ただし見た目は「Windows Terminal」のほうが好きだから、そのプレビュービルドも以下の2ヶ所で度々チェックしている。 https://github.com/microsoft/terminal/releases , https://apps.microsoft.com/detail/9n8g5rfz9xk3
774 名前:デフォルトの名無しさん [2025/08/09(土) 16:20:48.09 ID:S08gCjht.net] >>773 それはターミナルの一部の見た目の話だろ? ここはターミナルアプリのタブを一度も触ったことがねえやつばかりだな。
775 名前:デフォルトの名無しさん mailto:sage [2025/08/10(日) 00:24:03.75 ID:vHIHeDq6.net] パスに日本語等の非ASCII文字が入ると、 まともにコマンド編集できなくなる時点で、欠陥品としか言いようがない
776 名前:デフォルトの名無しさん [2025/08/10(日) 01:30:45.70 ID:swuUdv2c.net] >>775 そんな日本語対応をMicrosoftがするわけねえだろ。 だいたいコピー&ペーストだってあとからできるようにしてくれたんだぞ?
777 名前:デフォルトの名無しさん mailto:sage [2025/08/10(日) 01:49:24.39 ID:YdGUalHl.net] 一部のマルチバイト文字が混在すると文字の間隔が変 コードページを変えると更に別の文字も化けたりする 一度に大量の行を表示すると最後にゴミが出てくる タブはあると便利ですが単独のバッチには不要
778 名前:デフォルトの名無しさん mailto:sage [2025/08/10(日) 18:33:55.19 ID:vNE7ex5+.net] >>777 コードページ、ターミナルアプリ(wt,conemu/cmderなど)、シェル(cmd,pwsh,bashなど)とフォントの相互作用なので完全解が難しいので 自分はシステムコードページ65001にして解空間を最大化している
779 名前:デフォルトの名無しさん [2025/08/10(日) 18:50:43.65 ID:swuUdv2c.net] 単に老眼の話をしているだけのような気がしてきた
780 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 00:25:05.59 ID:CPQs8BLp.net] 同じ文字でconhostは正常なので、原因はcmdや老眼のせいじゃないな。 バッチはconhost使えばいいんじゃね。 ショートカット弄ると設定が戻ってしまうようだけど(笑)
781 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 01:16:02.27 ID:eBBeTH67.net] どうもパス等が長くて表示が折り返されるときにおかしなことになるみたいだな wtではひし形のはてなマーク、cmdでは中黒に置き換わって、 ウィンドウサイズを変更すると表示されるが、もとに戻すと文字化けが残ったまま おかしな行が増殖したりする
782 名前:デフォルトの名無しさん [2025/08/11(月) 01:21:00.25 ID:BPQ8/IeS.net] 文字間は隣の文字によって間隔を調整するのがM365やWindowsの普通になってきたので、その仕様を知らないのかもしれないね。 よくわからないのが、画面表示をそのまま見ようとするところ。 そんな少ないデータならいいけど、画面に表示されたものをそのまま見るというのはやはり一般人の使用だよね?
783 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 01:39:43.41 ID:qEWBZoUZ.net] wt 全角の隣りの文字と重なってる
784 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 01:59:31.66 ID:qEWBZoUZ.net] 全角と半角の区別できてない出来の悪いワープロソフトみたいな感じ
785 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 02:12:53.98 ID:qEWBZoUZ.net] [★★★★]
786 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 19:29:30.81 ID:jApty1op.net] >>780 conhostはWindowsTerminalソース(の一部)をOSチームがコンパイルしてるだけなので デフォルトや設定したフォントの線が疑われる
787 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 20:16:13.52 ID:qEWBZoUZ.net] フォント合わせて>>785 をwtに貼り付けてみ ピッチが半角なので字が重なる
788 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 22:36:38.73 ID:CnfwEDHt.net] >>787 こっちでは重ならない ttps://i.imgur.com/y7yAZC2.png Windows Terminal Preview Version: 1.23.12102.0 設定/Profile/Appearance/Fontface->PlemolJP Console NF
789 名前:デフォルトの名無しさん mailto:sage [2025/08/11(月) 22:39:30.80 ID:CnfwEDHt.net] 書き込めないけど commanlineはcmd.exeのフルパス
790 名前:デフォルトの名無しさん mailto:sage [2025/08/12(火) 01:19:57.65 ID:MtCSZU3d.net] %ComSpec%
791 名前:デフォルトの名無しさん mailto:sage [2025/08/12(火) 09:42:06.08 ID:QRF63dtM.net] >>788 そのフォント (PlemolJP Console NF) は文字が半角だね 例えば MS Gothic だと全角なので重なる ttps://imgur.com/a/Tu36sdZ Windows ターミナル (プレビュー) 1.23.12102.0
792 名前:デフォルトの名無しさん mailto:sage [2025/08/12(火) 11:03:47.27 ID:eJzfGzgD.net] このスレはバッチファイルのスレ 以降ターミナルは出禁な
793 名前:デフォルトの名無しさん mailto:sage [2025/08/12(火) 11:29:00.44 ID:ZbzKnXb5.net] 同じソースで表示が違うのは技術的な制約でもあるのかな。
794 名前:デフォルトの名無しさん mailto:sage [2025/08/12(火) 11:48:05.08 ID:eJzfGzgD.net] ターミナル関連の話題は以下のスレでどうぞ Windows Terminal ターミナルスレ https://mevius.5ch.net/test/read.cgi/tech/1754966849/
795 名前:デフォルトの名無しさん [2025/09/02(火) 16:43:43.72 ID:i1pFsEW3.net] start "" cmd 実行でこのコマンドを処理するにはメモリ リソースが足りません。 表示されるんだがこれ何なん
796 名前:デフォルトの名無しさん mailto:sage [2025/09/02(火) 20:02:10.57 ID:lXl1g7Hp.net] 点々はどういう意味なの?
797 名前:デフォルトの名無しさん mailto:sage [2025/09/02(火) 21:26:41.12 ID:BhBAQR8u.net] start /?
798 名前:デフォルトの名無しさん [2025/09/03(水) 09:11:34.79 ID:dhexZ22K.net] 昔は"タイトル"で""のパス指定の不具合を避けるためにstartコマンド時は当たり前だったけどな startコマンドは内部コマンドだっけ、cmdのバージョンで違うのかな
799 名前:デフォルトの名無しさん mailto:sage [2025/09/03(水) 13:01:11.90 ID:LYp0OMy2.net] 9xでは外部コマンド start.exe だったから command.com でも使えた 9xの拡張 cd ... とか復活しないかな
800 名前:デフォルトの名無しさん mailto:sage [2025/09/03(水) 18:46:15.03 ID:KF88luMo.net] 昔はmoveも外部コマンドだったよな 内部コマンドって""で囲うとエラーになる
801 名前:デフォルトの名無しさん mailto:sage [2025/09/04(木) 10:07:13.83 ID:yqF1XoOK.net] "echo" ほんとだ、エラーになった
802 名前:デフォルトの名無しさん mailto:sage [2025/09/04(木) 10:53:05.10 ID:tGb8/+Td.net] そもそも外部コマンドなんてのは無くて、やってるのはプログラムの実行 パスを "" で囲んでもエラーにならないのは不思議ではない
803 名前:デフォルトの名無しさん mailto:sage [2025/09/04(木) 17:41:24.69 ID:rkH6+lpV.net] >>800 エラーになるとは限らんぞ 同名の exe とか bat があるとそっちが実行される
804 名前:デフォルトの名無しさん mailto:sage [2025/09/04(木) 17:54:37.97 ID:vmz+sxn8.net] そんなもの作るなよ
805 名前:デフォルトの名無しさん mailto:sage [2025/09/04(木) 18:44:28.50 ID:zhnUgp6m.net] 昔Hello,worldの次にif.exe作って大混乱した思い出
806 名前:デフォルトの名無しさん mailto:sage [2025/09/07(日) 00:28:25.81 ID:g4CPkrpa.net] 795は start.exe というファイルがあったから という可能性もあるのかな
807 名前:デフォルトの名無しさん mailto:sage [2025/09/07(日) 00:35:43.76 ID:g6X1tCRi.net] 不審に思ったらwhereしろ
808 名前:デフォルトの名無しさん mailto:sage [2025/09/07(日) 14:31:25.42 ID:JaUUy90I.net] curl.exe がWindows標準で提供されるようになったの知らなくて、 あれ?、なんか違う、なんで?、ってなったの思い出した
809 名前:デフォルトの名無しさん mailto:sage [2025/09/07(日) 15:29:49.37 ID:upkpHxj9.net] powershellでcurlがエイリアスされてて混乱した人っていっぱいいると思う
810 名前:デフォルトの名無しさん mailto:sage [2025/09/07(日) 22:46:56.26 ID:LU1Xfm1C.net] busyboxを入れてるけど、 unixコマンドとwindowsコマンドでダブるやつがあるので、 動作が想定外になって、whereで確認することがある。 busyboxへのシンボリックリンクを優先・非優先のディレクトリで区別して、 system32とのパスとの優先度で使い分けてるわ。
811 名前:デフォルトの名無しさん mailto:sage [2025/09/08(月) 05:52:56.51 ID:FPjsYLdB.net] whereはちゃんとpath, pathext解析して優先度順に複数候補表示してくれるんだよな ms製にしては気が利いてる
812 名前:デフォルトの名無しさん mailto:sage [2025/09/08(月) 12:35:07.82 ID:3fc6GDUF.net] 内部コマンド名と同じ外部コマンドは除外するか、警告できないと危ない
813 名前:デフォルトの名無しさん mailto:sage [2025/09/08(月) 14:13:01.30 ID:YSLtRFr0.net] パスの管理ができていればそんなに心配することないよ Windowsコマンドを優先しておけばまずそういった問題は起きないし 自分はわざわざ入れた外部コマンドをつかいたいから、これを優先してるけど、 バッチファイルを使うときなどに差し支えそうなときは、 > set PATH=C:\WINDOWS\system32;%PATH% といったように、必要なパスを先頭に追加するようにしてる
814 名前:デフォルトの名無しさん mailto:sage [2025/10/01(水) 11:35:01.69 ID:yaFP74wm.net] Win11で拡張子.batのファイルを右クリックして編集の時のアプリを変える方法は?
815 名前:デフォルトの名無しさん mailto:sage [2025/10/01(水) 12:31:58.43 ID:L0tsff1s.net] レジストリのbatfileのedit
816 名前:デフォルトの名無しさん mailto:sage [2025/10/01(水) 13:02:36.52 ID:Yv+8qcgZ.net] バッチ内で環境変数を使うとおかしくなることがある なるべくプログラム内で判断する
817 名前:デフォルトの名無しさん mailto:sage [2025/10/01(水) 13:06:11.54 ID:tFujMJWG.net] >>816 どういう風におかしくなるの? まったくそんな経験は無いんだが
818 名前:デフォルトの名無しさん mailto:sage [2025/10/02(木) 01:16:11.74 ID:94UvuaYX.net] というか、バッチファイルの場合、環境変数が使えないと何も出来ないと思うんだけど
819 名前:デフォルトの名無しさん mailto:sage [2025/10/02(木) 06:03:02.17 ID:hmT74Uqz.net] 特に聞きたいこともないようだしほっときゃいい
820 名前:デフォルトの名無しさん [2025/10/11(土) 19:44:41.57 ID:EgUKqw11.net] >>814 右クリック時に他のテキストエディタで開くショートカットを追加すればいいだけだろ
821 名前:デフォルトの名無しさん mailto:sage [2025/10/12(日) 08:31:09.10 ID:jZVWBoeK.net] >>820 そのためのSendToフォルダ利用は、初歩的な基本だよね。 「ファイルを指定して実行」→名前欄に「shell:sendto」と入力して「OK」 またはコマンドプロンプト画面でコマンドライン「start shell:sendto」を実行
822 名前:デフォルトの名無しさん mailto:sage [2025/10/12(日) 08:38:29.30 ID:PP4v40Vb.net] 1工程多いから不満
823 名前:デフォルトの名無しさん mailto:sage [2025/10/12(日) 08:42:16.86 ID:SMvQmH4s.net] ランチャ・ファイラ側で^e押したら拡張子に応じた適切な編集ツール起動するように設定しとけ
824 名前:デフォルトの名無しさん mailto:sage [2025/10/12(日) 14:59:50.94 ID:3Mp/lKj+.net] 815にあるようにレジストリの値を変更すればいいだろ HKEY_CLASSES_ROOTの.batを見ると(既定)に「batfile」とある さらにbatfileを見ると、 shell\edit\commandに「%SystemRoot%\system32\notepad.exe %1」とあるのでここを書き換えればいい
825 名前:デフォルトの名無しさん [2025/10/12(日) 23:39:32.94 ID:D80drn0C.net] >>824 Windowsのデフォルト設定がわからなくなるようなやり方を勧めるべきではない。
826 名前:デフォルトの名無しさん mailto:sage [2025/10/13(月) 03:14:57.22 ID:YwWo+azg.net] shell\他のテキストエディタで開く\command というキーを作って、そこに他のテキストエディタで開くコマンドを記載すればいい
827 名前:デフォルトの名無しさん [2025/10/13(月) 08:12:17.04 ID:SftElVT9.net] >>821 かつてWindowsXPは、 SendToフォルダに46個を超えるショートカット等が入っていても、 SendToフォルダ内のサブフォルダにショートカット等が入っていても、 それら全てをファイル/フォルダの右クリック→「送る」から正常に選択できた。 しかしWindows7~Windows11の「送る」からは、 47個目以降のショートカットやサブフォルダ内のショートカットを選択できない仕様へ退化していた。 右クリックしたファイル/フォルダをSendToフォルダ内のサブフォルダ内へコピーする事なら可能だが… WindowsXPとWindows7の間に発売されたWindowsVistaでは、どっちの仕様だったのだろうか?
828 名前:デフォルトの名無しさん [2025/10/13(月) 19:32:05.72 ID:iz0ZdZIk.net] >>827 右クリックメニューこそカスタマイズして伝統的な右クリックメニューにして使えよ。
829 名前:デフォルトの名無しさん mailto:sage [2025/10/13(月) 19:58:08.44 ID:xEmYFl1x.net] >>828 どのように?
830 名前:デフォルトの名無しさん [2025/10/14(火) 01:31:33.91 ID:QdU4k/SE.net] >>829 レジストリの値を変えるだけ
831 名前:デフォルトの名無しさん mailto:sage [2025/10/17(金) 23:17:11.22 ID:C469EUFZ.net] for %i in (1,2,3) do echo %i & echo 終わり でループ終了後に1回だけ終わりって表示する方法ない? 意地でも一行で書きたい
832 名前:デフォルトの名無しさん mailto:sage [2025/10/17(金) 23:40:36.18 ID:8Pqh7mYa.net] (for %i in (1,2,3) do echo %i) & echo 終わり
833 名前:デフォルトの名無しさん mailto:sage [2025/10/22(水) 03:24:30.74 ID:cB+j7g0b.net] powershellに移行しない理由って何がありますか?
834 名前:デフォルトの名無しさん mailto:sage [2025/10/22(水) 04:18:49.62 ID:z62W5MBf.net] 覚えるのがめんどくさい
835 名前:デフォルトの名無しさん mailto:sage [2025/10/22(水) 13:25:15.14 ID:bjMODV9W.net] コマンドが長すぎる aliasで短く再定義すればいいのだろうが、面倒くさい DOSで大体間に合っている
836 名前:デフォルトの名無しさん [2025/10/22(水) 17:48:13.19 ID:PaNPoiTZ.net] >>835 DOSではありません。
837 名前:デフォルトの名無しさん mailto:sage [2025/10/24(金) 01:15:01.89 ID:BSUWrJg+.net] もうちょっとまともな理由かと思ってたw
838 名前:デフォルトの名無しさん [2025/10/25(土) 14:55:08.26 ID:sdVmDvw2.net] >>837 PowerShellを使わせないようにWindowsの設定を変えている大企業もある クソ企業だ
839 名前:デフォルトの名無しさん [2025/10/25(土) 14:55:56.81 ID:sdVmDvw2.net] ソフトバンクはPowerShellを使えないようにしている。 クソ。
840 名前:デフォルトの名無しさん mailto:sage [2025/10/25(土) 22:15:06.05 ID:NLho/GlD.net] 何の設定を変えてるんだ?実行ポリシーの話?
841 名前:デフォルトの名無しさん [2025/10/29(水) 17:03:43.88 ID:NSCUi//C.net] >>840 ソフトバンクはコマンドプロンプトとターミナルを起動できなくしているクソ企業
842 名前:デフォルトの名無しさん mailto:sage [2025/10/30(木) 07:08:31.56 ID:q+RoJBty.net] 草
843 名前:デフォルトの名無しさん [2025/10/30(木) 17:30:39.79 ID:k5qTIKM4.net] >>841 は少し間違っていた。古いWindows PowerShellとターミナルを起動できなくしている。 開発職にPowerShellを使わせたくない理由がわからない。
844 名前:デフォルトの名無しさん mailto:sage [2025/11/07(金) 11:34:34.37 ID:QT9zXZfX.net] 昭和のじじい、ループ系命令でカウント加算部分やループアウト条件の指定がいらない処理系をみると投げ出したくなる・・・。 (BASIC、アセンブラ、C言語ソース読むと安心する・・・)
845 名前:デフォルトの名無しさん mailto:sage [2025/11/09(日) 02:34:14.81 ID:jCSd+Wl1.net] ターミナルフォントにBizin Gothic NFいいな
846 名前:デフォルトの名無しさん mailto:sage [2025/11/11(火) 19:58:46.96 ID:9xp6evRI.net] やっぱPowerShellって糞だわ デフォで禁止どころか削除しておくべき PCを乗っとる「ClickFix」攻撃に早くも亜種、「FileFix」にも注意 ~Kasperskyが解説 - やじうまの杜 - 窓の杜 https://forest.watch.impress.co.jp/docs/serial/yajiuma/2062226.html
847 名前:デフォルトの名無しさん [2025/11/11(火) 23:08:22.35 ID:6WM7ij4r.net] PowerShellスレでやれ
848 名前:デフォルトの名無しさん mailto:sage [2025/11/12(水) 11:02:43.15 ID:QaZRYzTL.net] >>846 PowerShellのせいじゃねーだろ?w 悪いのは詐欺に引っかかる馬鹿
849 名前:デフォルトの名無しさん mailto:sage [2025/11/12(水) 11:52:04.53 ID:kDFBs8wK.net] 言われるままにエクスプローラーにコピペして実行するバカにとっては powershellじゃなくてもbatファイルでも同様に起動しちゃうんだろうが
850 名前:デフォルトの名無しさん mailto:sage [2025/11/12(水) 21:23:12.04 ID:xIPjuks7.net] そういう自己責任論が蔓延してるから サイバー攻撃受けまくってるわけだが
851 名前:デフォルトの名無しさん [2025/11/12(水) 23:11:06.99 ID:3f5xsQjS.net] PowerShellを削除して解決する問題かよ余所でやれ
852 名前:デフォルトの名無しさん mailto:sage [2025/11/13(木) 02:01:06.38 ID:/uZSanNN.net] batおじさん、さすがに思考が短絡的すぎるのでは
853 名前:デフォルトの名無しさん [2025/11/13(木) 20:39:41.36 ID:Qom0Qzki.net] >>852 PowerShell上でバッチファイルを起動できることを知らないんだろうね。
854 名前:デフォルトの名無しさん mailto:sage [2025/11/13(木) 23:10:01.74 ID:PPw4eH5c.net] powershellを介さなくともエクスプローラから直接batファイルを起動できるんだが
855 名前:デフォルトの名無しさん mailto:sage [2025/11/14(金) 03:19:19.80 ID:qW45xEMe.net] conhost --headless 怪しいお米
856 名前:デフォルトの名無しさん mailto:sage [2025/11/14(金) 14:29:46.29 ID:w4M6YQLx.net] 名前が長すぎる windowsはwin、PowerShellはPowersと正式名を変えよう 1,2音節で言いやすくなり、人気が出てユーザも増える
857 名前:デフォルトの名無しさん [2025/11/16(日) 00:56:48.18 ID:8tymQ6Dv.net] >>854 外部プログラムの呼び出しの例がわからないのか?
858 名前:デフォルトの名無しさん [2025/11/16(日) 01:02:36.87 ID:8tymQ6Dv.net] >>854 バッチファイルは誤って実行する可能性があるから、安易にバッチファイルを勧めてはいけない。 Windows 11のデフォルト設定では右クリニックで編集のつもりで実行してしまうことを防ぐ設定にした。
859 名前:デフォルトの名無しさん mailto:sage [2025/11/16(日) 03:20:40.62 ID:7/3uv/ZN.net] バッチファイル右クリックで開くと実行するのは詐欺だわな
860 名前:デフォルトの名無しさん mailto:sage [2025/11/18(火) 10:34:11.69 ID:uhTxxF6a.net] 今更batを使う理由、それは軽いから 高級スクリプトはもさもさすぎる https://pastebin.com/wfJhp4Q3
861 名前:デフォルトの名無しさん mailto:sage [2025/11/20(木) 00:37:51.17 ID:MoDak8nW.net] 正直に言いなよ 書けないからだって
862 名前:デフォルトの名無しさん mailto:sage [2025/11/20(木) 01:23:20.74 ID:nVsBMAPs.net] powershellはちょっと使うには重過ぎる WSHが一番だけど お手軽に使えるbatは手放せないかな
863 名前:デフォルトの名無しさん mailto:sage [2025/11/20(木) 01:35:19.06 ID:kh4IZRph.net] バッチファイルを右クリックで実行ってどんな環境の話をしてるんだ? 「開く」を選択しない限り実行しないだろ
864 名前:デフォルトの名無しさん mailto:sage [2025/11/20(木) 01:52:12.48 ID:AzD7FZTX.net] >>863 >859
865 名前:デフォルトの名無しさん mailto:sage [2025/11/21(金) 03:41:40.13 ID:3hr5g3Gi.net] pwshは一瞬で起動するよ もさもさするのはPCが古いんじゃね
866 名前:デフォルトの名無しさん mailto:sage [2025/11/21(金) 12:05:40.40 ID:1dUw/OV8.net] 11メモ帳削除して旧メモ帳にすると起動速くてビビるよ
867 名前:デフォルトの名無しさん [2025/11/22(土) 01:10:44.57 ID:EpazP4qZ.net] >>863 「開く」が実行するという意味なのは英語圏でもわかりにくい。 マイクロソフトはopenとexecuteは同じと定義してしまったが、こんなのみんな間違うわ。
868 名前:デフォルトの名無しさん mailto:sage [2025/11/23(日) 16:15:33.49 ID:qQwLCB13.net] >>867 あるある 開くでなく実行とかいてほしい
869 名前:デフォルトの名無しさん [2025/11/29(土) 20:51:29.08 ID:ThvX033e.net] バッチファイルはもともとMS-DOSの設定ファイルだったからな。
870 名前:デフォルトの名無しさん mailto:sage [2025/12/01(月) 09:49:49.66 ID:zjlRINjT.net] >>869 いや、その認識はおかしい
871 名前:デフォルトの名無しさん [2025/12/01(月) 12:19:51.85 ID:HDTmHOXC.net] config.sys と autoexec.bat か もう随分使ってないな
872 名前:デフォルトの名無しさん mailto:sage [2025/12/01(月) 14:18:36.37 ID:rhZikjSt.net] 98エミュでエロゲーやるとき必要になるだろ
873 名前:デフォルトの名無しさん [2025/12/03(水) 22:37:42.28 ID:mTHKBKnn.net] >>871 そのファイルはもう存在していない
874 名前:デフォルトの名無しさん mailto:sage [2025/12/04(木) 12:31:20.49 ID:KHxkb3WB.net] わざとファイルを作っておいて、ひっかかるウィルスソフトがあるか試す
875 名前:デフォルトの名無しさん [2025/12/08(月) 01:50:23.22 ID:xJOUnYEk.net] reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR /f /t REG_DWORD /v "AppCaptureEnabled" /d 0 をPowerShellで行うように指示されたとします これをバッチファイル化するには、どのような手順を踏まえれば宜しいでしょうか? メモ帳に記述し、拡張子を.batにするだけで通用しますよね? 起動はcmdですが 逆にregで [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\GameDVR] "AppCaptureEnabled"=dword:00000000 とするでも同じだと思います 正しいでしょうか?
876 名前:デフォルトの名無しさん mailto:sage [2025/12/08(月) 09:09:41.15 ID:uw6LsRtu.net] AIがサポートしてくれるおかげでウンコ言語bashのコード産出量が倍になったらしいが batはちっとも盛り上がらないな
877 名前:デフォルトの名無しさん mailto:sage [2025/12/08(月) 15:03:38.91 ID:Zux6FQyH.net] @.bat はファイルを作れるが実行できない ^@ で実行できる
878 名前:デフォルトの名無しさん mailto:sage [2025/12/08(月) 20:53:14.46 ID:aRq3o8Yh.net] >>875 PowerShellを使えと言われたのなら素直に使えば良いと思います
879 名前:デフォルトの名無しさん mailto:sage [2025/12/09(火) 00:19:01.52 ID:sFS9fpaA.net] 意地でもpowershell使わないおじさんかな
880 名前:デフォルトの名無しさん mailto:sage [2025/12/09(火) 00:21:35.39 ID:jcN+x0Zm.net] >>875 やってみたらわかる 好きなのでやったら良い
881 名前:デフォルトの名無しさん [2025/12/09(火) 01:53:53.17 ID:ufz5lvsT.net] あの後そのまま試し、レジストリが0になっていました 元の値を未確認でしたので、実働しているかは不明 取り敢えず、その値を逆引きしてreg化し、そっちをバックアップとして残しています 個人的にregが一番安心感ありますね 元となる値を、OSの標準機能でエクスポートする為、記述のミスが起こり難いからでしょうか batは言語その他をきちんと理解している方が、能動的に好き放題するための手段に思います チンパンには不向きですわw
882 名前:デフォルトの名無しさん mailto:sage [2025/12/09(火) 08:08:41.39 ID:8dY/ssnq.net] 試せばわかることを他人に質問する理由はなに?
883 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 17:13:57.24 ID:FGoG9TJ/.net] magick.exe *.png -gravity center -composite +append output.png これを複数フォルダを対象に各フォルダで画像を合成したいのですが
884 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 17:46:27.99 ID:FGoG9TJ/.net] magick.exe montage *.png -tile 3x3 -geometry 400x400+10+4 output.png こっちは結合なんですが、同じくフォルダ単位で結合したいです。
885 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 18:08:00.33 ID:ZLjLIbW/.net] 複数のフォルダをどう指定したいのか? ・ルートフォルダを指定して、自動的にそのサブフォルダを全て実行する ・エクスプローラで、フォルダを複数選択して実行 など
886 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 18:16:33.64 ID:FGoG9TJ/.net] ルートフォルダを指定して、自動的にそのサブフォルダを全て実行する です。
887 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 21:14:47.68 ID:ZLjLIbW/.net] ご飯食べてきてもまだ誰も回答してないのか 一例だけど ・cdでフォルダ移動しなくてもmgickにパス指定で渡せばいけると思うが実行して確認してないので安全策 ・output.pngが存在してたらそれも対象になっちゃいそうだからスキップしとく。何度でも再実行可能になるし ・.pngが存在しないサブフォルダはスキップ @echo off set target= setlocal if "%~1" neq "" set target="%~1" for /r %target% %%i in (*.png) do ( cd /d %%~dpi if not exist "output.png" ( echo %%~dpi magick.exe montage *.png -tile 3x3 -geometry 400x400+10+4 output.png ) ) endlocal
888 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 21:37:35.25 ID:ZLjLIbW/.net] 上のはフォルダにpngファイルがいっぱいあるとその分ループするので(実行には問題ないとおもうが) @echo off set target= setlocal if "%~1" neq "" set target="%~1" for /r %target% %%i in (.) do ( cd /d %%i if not exist "output.png" ( if exist "*.png" ( echo %%i magick.exe montage *.png -tile 3x3 -geometry 400x400+10+4 output.png ) ) ) endlocal
889 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 21:47:13.12 ID:FGoG9TJ/.net] ありがとうございます。 ついでに元ファイルを削除する場合はどう書けばいいのでしょうか? for %%f in (*.png) do (if /I not "%%f"=="output.png" del "%%f") これだと削除されなかったのですが
890 名前:デフォルトの名無しさん mailto:sage [2025/12/11(木) 21:54:32.51 ID:FGoG9TJ/.net] 失礼しました。 なんとかなりました。
891 名前:デフォルトの名無しさん mailto:sage [2025/12/12(金) 08:36:30.41 ID:kUSQ7o+M.net] PCのCopilotを呼び出すbatの書き方を教えてください。
892 名前:デフォルトの名無しさん mailto:sage [2025/12/12(金) 11:46:37.54 ID:kUSQ7o+M.net] 自己解決しました。
893 名前:デフォルトの名無しさん mailto:sage [2025/12/12(金) 12:39:23.24 ID:kUSQ7o+M.net] 呼び出す方法は以下になりますが、これだと起動に時間がかかります。 もう少し素早く起動させる方法はないでしょうか? @echo off tasklist | find "pwahelper.exe" > NUL if %ERRORLEVEL% == 0 ( taskkill /im pwahelper.exe /f ) else ( start shell:Appsfolder\Microsoft.Copilot_8wekyb3d8bbwe!App )
894 名前:デフォルトの名無しさん mailto:sage [2025/12/12(金) 12:52:42.13 ID:kUSQ7o+M.net] 修正できました。
895 名前:デフォルトの名無しさん mailto:sage [2025/12/12(金) 13:29:31.62 ID:kUSQ7o+M.net] すいません。 修正できたと思ったのですが、無理でした。 batで素早くCopilotを起動する方法を教えてください。 ちなみにショートカットキー(Windowsキー+Cキー)だとすぐに起動します。