1 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 14:52:07.84 ID:v84I4o+L.net] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net echo.2ch.net/test/read.cgi/tech/1424858999/ 【.cmd】 バッチファイルスクリプト %12 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1489207631/ それ以前の過去スレ %10 peace.2ch.net/test/read.cgi/tech/1374205515/ %9 toro.2ch.net/test/read.cgi/tech/1335015478/ %8 toro.2ch.net/test/read.cgi/tech/1315844420/ %7 hibari.2ch.net/test/read.cgi/tech/1298873550/ %6 hibari.2ch.net/test/read.cgi/tech/1277465356/ %5 pc12.2ch.net/test/read.cgi/tech/1242268171/ %4 pc12.2ch.net/test/read.cgi/tech/1229955189/ %3 pc11.2ch.net/test/read.cgi/tech/1217860043/ %2 pc12.2ch.net/test/read.cgi/tech/1197881068/ %1 pc11.2ch.net/test/read.cgi/tech/1178281991/
2 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 14:53:38.55 ID:v84I4o+L.net] スレ作った
3 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 15:10:24.99 ID:ROx7bOng.net] >>1 いちおつ ところで、最近、プロンプトの色が変わってしまったんだが直し方教えてください くすんだ感じになってしまう color 9f とか明るい色が顕著 自分で加えた変更の何が影響したのかわからず、途方に暮れてます
4 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 15:28:50.54 ID:0+i4JzOE.net] タヒ
5 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 15:34:12.06 ID:0TmpON8B.net] >>1 乙 テンプレ文だがもうWSHよりはPowershellじゃないのかしら?
6 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 15:54:50.45 ID:waeO4Jak.net] powershellはここの板に別スレがあってここで取り扱う必用は無い 一方wshはもはや専用スレは無くこのスレに含めた形で残っている
7 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 23:59:36.40 ID:VxDAgoaS.net] >>3 自己レスです レジストリの HKEY_CURRENT_USER\Console にある ColorTableXX で指定された 色 00BBGGRR がソレだったので何かが変だった訳でもなく、忠実に この値を読んでいただけでした 黒をわざわざ 0c0c0c にしていたり、全テーブル 00 から 15 まで 全て変更が入っていたので、いつの間に変更したのかという疑問が 残りますが……
8 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 05:37:11.56 ID:HUZaaTR+.net] >REG QUERY "HKCU\Console" /f ColorTable* HKEY_CURRENT_USER\Console ColorTable00 REG_DWORD 0x0 ColorTable01 REG_DWORD 0x800000 ColorTable02 REG_DWORD 0x8000 ColorTable03 REG_DWORD 0x808000 ColorTable04 REG_DWORD 0x80 ColorTable05 REG_DWORD 0x800080 ColorTable06 REG_DWORD 0x8080 ColorTable07 REG_DWORD 0xc0c0c0 ColorTable08 REG_DWORD 0x808080 ColorTable09 REG_DWORD 0xff0000 ColorTable10 REG_DWORD 0xff00 ColorTable11 REG_DWORD 0xffff00 ColorTable12 REG_DWORD 0xff ColorTable13 REG_DWORD 0xff00ff ColorTable14 REG_DWORD 0xffff ColorTable15 REG_DWORD 0xffffff
9 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 06:45:17.58 ID:y7NAvoby.net] >>6 > powershellはここの板に別スレがあってここで取り扱う必用は無い 別にここで取り扱えという話じゃなくて「使用も検討しましょう」って話な PowerShell の話題が出たら誘導すればいいだけだし > 一方wshはもはや専用スレは無くこのスレに含めた形で残っている wshの専用スレがないのは需要がないからだろ そんなものに対して使用を検討する必要なんてないと思うぞ
10 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 07:28:54.55 ID:Q9Jr5DcP.net] >>8 デフォルト値ありがとうございます 実際にOSインストールしなおしての確認はしてないのですが Win10_1809Oct_Japanese_x64.iso の install.wim の install.wim\3\Users\Default\NTUSER.DAT ハイブファイルのロードをしてみると変化していた方の配色と一致してました OSクリーンインストール後、しばらく変化に気づいていなかっただけ、 という事のようです 少し透かしていたから 000000 と 0c0c0c の違いに気づくのもほぼ無理ゲー、 だったのも加味して…… スレ汚し失礼しました
11 名前:デフォルトの名無しさん mailto:sage [2018/11/22(木) 08:20:54.79 ID:HUZaaTR+.net] 俺も以前に経験あるが何で勝手に変わるのか未だに不明 デフォにしたけりゃ"HKCU\Console"消して起動したらいいんだけど
12 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 06:41:38.84 ID:Yr5PhtU+.net] >>8 だが 俺も"HKCU\Console"消して起動したら ColorTable00 が 0x0 から 0xc0c0c になったよ 今はこれがデフォルトなんだな
13 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 07:03:12.22 ID:Yr5PhtU+.net] dir | more でEnter押すと1行ずつ出てくるんだけど 前からこんな動作だったっけ? dir /p みたいにページごとにスクロールしないのか? ちなみにWin10Pro 1809 17763.107 だ
14 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 07:31:03.82 ID:Yr5PhtU+.net] すまんhelp見たら <ret> 次の行を表示します。 になってた。 あとスレチだが gpg -d がエラー出る...
15 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 13:03:06.27 ID:H8vDP5fG.net] このスレってテンプレに「 次スレは>>970 踏んだ人が立てましょう 」とかないんだね。 毎回同じ人が立ててるのかな?
16 名前:デフォルトの名無しさん [2018/12/02(日) 11:33:28.29 ID:WVaKBjKU.net] ffmpegで動画容量を減らしています この先何度も使いそうなのでドラック&ドロップなどで簡単にしたいのでバッチファイルの作り方を教えていただけませんか また,バッチファイルでなくとも他に良い方法などありましたらぜひお願いします ffmpeg -i "sample.mp4" -b:v 500k -pass 1 output.mp4 ffmpeg -i "sample.mp4" -b:v 500k -pass 2 output.mp4 普段はこれを実行しています
17 名前:デフォルトの名無しさん mailto:sage [2018/12/02(日) 14:26:12.73 ID:uIlAasYL.net] シェルスクリプト・PowerShell もあるけど、 安全性のため、ダブルクリックでは動かない ダブルクリックで動くのは、バッチファイルだけ
18 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 10:52:45.51 ID:mYQmjn55.net] >>16 オイラはSendToにバッチファイル(のショートカットでもOK)入れて右クリックの送るから使ってる C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\SendTo 2-passは使ったことないけど、とりあえず >>16 の処理をするようになってるはず 適当なファイル名を拡張子batで保存して使ってちょ 書き込み時にインデント消えちゃうかもしれないけど、3行目の&&の前だけは先頭に空白1文字以上入れてちょ for %%f in (%*) do ( ffmpeg -y -i "%%~ff" -b:v 500k -pass 1 -f mp4 NUL ^ && ffmpeg -i "%%~ff" -b:v 500k -pass 2 "%%~df%%~pf%%~nf_output%%~xf" ) pause 自動でウィンドウ閉じたければ最後のpauseはいらない 出力ファイル名は入力ファイル名_outputにしてるけど、お好みで変えればよい 複数ファイルも順番に処理するよ
19 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 18:23:57.45 ID:YV7FMG5g.net] typeコマンドってパイプかますと出力が変わるんだな... 以前はこんなじゃなかったような気がするが? >type a abc漢字def >nkf -SjO a b >nkf -Js b abc漢字def >type b abc4A;zdef >type b | more abc$B4A;z(Bdef
20 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 20:16:59.52 ID:Mme7W69z.net] "C:\hoge.exe"というプログラムを再起動したくて taskkill /im hoge.exe /f start C:\hoge.exe という2行のバッチを書いたら、hoge.exeがまだ終了しきってなくて起動しませんでした。 hoge.exeの終了にかかる時間が3秒だったり20秒だったりとまちまちなので タスクリストから居なくなったことを確認してから起動したいのですが どう書けばよいのでしょうか?
21 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 21:09:17.31 ID:YV7FMG5g.net] TASKLISTで確認?
22 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 10:02:24.61 ID:miUFx5r6.net] >>20 こんな感じでどうだろうか? taskkill /im hoge.exe /f :check_run timeout /t 1 /nobreak >nul tasklist | find "hoge.exe" >nul && goto check_run start C:\hoge.exe
23 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 15:06:21.73 ID:B1LaPmLX.net] >>20 tasklist xx|findstr xx if %errorlevel% == 0
24 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 15:22:10.57 ID:GaZgkwnu.net] 今help見たら、まだ直ってねえ... tasklist/?のフィルター名IMAGENAMは間違いだ... for /f "skip=1" %%i in ('tasklist /fi "imagename eq hoge.exe"') do goto check_run
25 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 15:39:45.58 ID:GaZgkwnu.net] あ、条件が逆w...
26 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 15:42:42.33 ID:GaZgkwnu.net] 逆じゃないなw ボケたなあ...
27 名前:20 mailto:sage [2018/12/05(水) 22:04:34.15 ID:82viBDdQ.net] みなさんレスありがとうございます! 明日職場で試してみますね。 恥ずかしながら自宅PCが古すぎてtasklistコマンドとかが無いので (WinXP Homeです。Win7が故障中なので…) どうもありがとうございました!
28 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 22:18:55.09 ID:NGe7cQU/.net] XPならtimeoutも無いから
29 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 05:58:03.99 ID:+WfW7iJP.net] XPってtaklistすらないんか…( ゚д゚)ポカーン にしては↓のスレは盛況だなw WindowsXPを使い続けるよ Part94 https://mevius.5ch.net/test/read.cgi/win/1543650955/
30 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 06:30:42.74 ID:U/lGMKnD.net] XP Proにはあるんだが XP HomeではPowerShellのGet-Processで代用できるらしいよ PowerShell1.1以降らしいから、PowerShell2.0をインストールしないといけないけど
31 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 15:26:32.29 ID:iJNEICpM.net] Sysinternals Suite にある、pslistを始めとするコマンド群を利用すれば、 XPでも同等のことは出来る
32 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 21:28:59.92 ID:HLPPFLjR.net] XPの駆除には苦労した。 Vistaの切られぶりには辟易。 管理者って損な役回りだよなぁ…。 今は7の駆除中。
33 名前:デフォルトの名無しさん [2018/12/06(木) 23:38:01.47 ID:UfR2YFj9.net] >>18 ありがとうございます レス内のものは上手く行きませんでしたが別でうまく行くものを作るためのヒントになりました
34 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 11:34:54.02 ID:k1b27fN5.net] >>19 それパイプ処理してるコマンドの方の問題じゃなくて?
35 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 12:17:44.85 ID:cJMcluJv.net] 俺には何が原因か分からない 画面コンソール入力するたびに最下段にスクロールするし スレチだけど gpg -d で画面表示させるとエラー gpg -h で画面表示させると文字化けまくり cmd の表示関係が最近おかしい...
36 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 19:56:05.65 ID:iBsL10N5.net] xcopyで出来ることは全てrobocopyでも出来るという認識で良いのでしょうか?
37 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 21:49:55.05 ID:cUniS7mm.net] >>36 削られてるオプションもあるけど「出来ること」に関してはほぼその認識で合ってるんじゃないかな。 ただ、xcopy が対話指向なのに対して robocopy はバッチ指向になってる。(言い換えればログ指向) コマンドを置き換えれば良いというものではない。場合によってはログが五月蠅い。 ま、今時、ネットワーク越しやバッチ処理でのコピーに xcopy は御法度レベルだから xcopy なんか忘れちゃってもいいと思う。
38 名前:not 36 mailto:sage [2018/12/07(金) 23:31:50.72 ID:J47iFz0r.net] >>37 >ネットワーク越しやバッチ処理でのコピーに xcopy は御法度レベルだから xcopy なんか忘れちゃってもいいと思う。 そうだったのか、情報ありがとう 調べたらxcopyを使ったバッチファイルがあった、なおそ
39 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 20:14:50.36 ID:Zhb2FJyz.net] xcopyはほぼフォルダ丸ごとコピー用途に使ってたから /mirオプションで済むrobocopyの方が覚えやすくて助かるw コピー自体も高速らしいし
40 名前:37 mailto:sage [2018/12/08(土) 22:52:01.33 ID:i9Z2WdJR.net] >>38 xcopy はコピー中にネットワークが切れたりするとファイルがシレっと壊れるのだよ。 ノートPCがバッテリーアウトでハイバネーションに入るような時に起こりやすい。 対話式に目で動作を見ながらの分にはいいけど、それ以外の用途にはお勧めしないのだ。
41 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 23:16:46.42 ID:hZepSGXS.net] 単純コピーだったらxcopyの方がはるかに早かった気がするんだが
42 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 23:33:03.66 ID:fChhgbp6.net] ネット越しだと、SSHが使えるrsyncがいいんだけど、 Windowsで使うにはcygwinが必要になるのでやや使いづらいかも そこで、クラウドでも使えるrsyncという触れ込みのrcloneがいいかな タイムスタンプだけが変更された時でも、実体をコピーすること無く、タイムスタンプだけを変更するなど、 それなりに賢い処理がされるようだ もちろんローカルファイル同士でも使える バッチによる基本的なバックアップ用途の使い方しかしていないけど、とにかく多機能でおすすめ GoogleドライブやOneDriveなんかのクラウドへのバックアップも、バッチ処理で簡単にできる
43 名前:39 mailto:sage [2018/12/09(日) 10:35:27.52 ID:lZKvlyRa.net] >>41 過去にrobocopyのが速いみたいな記事を見た気がしたんだが 今探しても見当たらないので記憶違いかもしれぬ…
44 名前:デフォルトの名無しさん mailto:sage [2018/12/12(水) 12:03:09.26 ID:wwhUpKQ/.net] Windows 10 19H1 で notepad が BOM無しUTF-8がデフォルト になるそうだな... いっそのこと コマンド プロンプトも変えてくれ
45 名前:デフォルトの名無しさん [2018/12/13(木) 07:50:54.80 ID:3pDLloxA.net] バッチファイルの第一引数をファイル名にしたとして ファイル名に&とか^が入るときどうやって処理すればいいの? 代入するとエスケープされて消えちゃうのよ。
46 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 09:07:24.92 ID:J8CqZcRY.net] 結局、BOM の有無を気にする開発者がいなかった。 欧米人には関係ないから ただ、Explorer では、BOMが無いと、UTF-8・sjis の区別がつかないから、文字列で検索できなくなるから、 漏れは、Windows10・WSL・Ubuntu16.04 で、grep を使っている
47 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 09:48:12.16 ID:vKHUraGB.net] >>45 入らないようにする
48 名前:デフォルトの名無しさん mailto:sage [2018/12/13(木) 16:46:34.51 ID:H7Y/MSWd.net] >>45 バッチファイルに直接D&Dで起動用のバッチ というか他の起動方法なら引数を引用符で囲むだけだし @ECHO OFF IF "%~1"=="1" SHIFT /1 & GOTO MAIN SET "A=%CMDCMDLINE:"=*%" SET "A=%A:~0,-1%" FOR /F "tokens=2* delims=*" %%I IN ("%A%") DO SET "B=%%I" & SET "C=%%J" SET E="%B%" 1 :NEXT_ARG SET "A=" & FOR /F "tokens=*" %%I IN ("%C%") DO SET "A=%%I" IF NOT DEFINED A %E% IF "%A:~0,1%"=="*" (SET "D=*") ELSE SET "D= " FOR /F "tokens=1* delims=%D%" %%I IN ("%A%") DO SET "B=%%I" & SET "C=%%J" SET E=%E% "%B%" & GOTO NEXT_ARG :MAIN SET /A N=0 :LOOP IF "%~0"=="" PAUSE & GOTO :EOF ECHO ARG%N%=%0 SET /A "N+=1" & SHIFT & GOTO LOOP
49 名前:デフォルトの名無しさん [2018/12/14(金) 07:43:35.08 ID:0Ppktz+s.net] ありがとうございます。
50 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 01:06:37.50 ID:1s8Yv8lB.net] dir ってオプション(スイッチ)の順番で表示が異なるのを発見 CD /D C:\ dir /AH /A-D dir /A-D /AH
51 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 04:41:20.49 ID:s5MEHoIJ.net] 話変わるがスペース無くてもOK CD/D"C:\ DIR/AH/A-D DIR/A-D/AH
52 名前:デフォルトの名無しさん mailto:sage [2018/12/15(土) 08:56:57.96 ID:q+o88Lhc.net] その仕様のせいでパス区切り文字を/にすることができないという呪いが
53 名前:デフォルトの名無しさん [2018/12/16(日) 12:34:58.23 ID:2Wn8M764.net] 仕様がカオスになってるよね。 はやくLinuxcommandも標準対応して欲しい
54 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 00:07:47.83 ID:C+acxNdu.net] >>53 DOSってMS最古だから、ビルベイツ謹製のコードか仕様が残っていて 今の社員は恐れ多くて変えられない ということにしておこう
55 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 00:08:37.24 ID:msnfpX97.net] >>51 そうだったのか、サンクス
56 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 07:58:43.76 ID:xQB1O269.net] >>53 永久にならないから忘れろ
57 名前:デフォルトの名無しさん [2018/12/17(月) 19:54:34.22 ID:zeK+PGUB.net] >>43 だけどやっぱわからん! sendtoにバッチファイル入れといてフォルダを指定します。 指定したフォルダの名前をechoで表示したいんだけど&^がフォルダ名に付けられているとフォルダ名表示が出来ない。 batファイル &というフォルダを右クリック送るをした時 @echo off echo "%~f1" これは表示できる set fname="%~f1" echo "%fname%" &や^が消えてしまう どうやったら代入ができるの?エスケープに置き換えも一文字分しかできないし。
58 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 20:25:30.59 ID:CiJxr7Yn.net] set "fname=%~f1"
59 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 20:26:56.58 ID:uU80GVRL.net] >>57 echo %fname%
60 名前:デフォルトの名無しさん mailto:sage [2018/12/17(月) 20:28:40.66 ID:uU80GVRL.net] あ、ごめん どっちでもいいよ
61 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 13:47:43.45 ID:ZTiiH/I2.net] バッチファイル中の*.*で、そんなファイルはないとエラーが出た もう一度実行するとこれまでどおり問題なしに実行 windows更新の影響かセキュリティソフトのせいかも知れないが、 ウィルスがコマンドをすり替えている可能性もあるから、バッチ中のコマンドはパスも含めて たとえばnotepadでなくC:\Windows\notepad.exeの方が安全だなと思った
62 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 15:56:36.05 ID:ZNh/EsxI.net] 話変わるが 今は *.* としても意味無いよ * だけでOK
63 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 16:12:14.33 ID:06gMfJVc.net] >>62 そうですか、昔のくせでつい ありがとうございます
64 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 17:05:59.89 ID:ZNh/EsxI.net] 色んなソフト入れると %PATH% が膨れ上がる 使わないパスが30個とか.. 気味が悪いのでバッチの先頭に PATH C:\WINDOWS\system32;C:\WINDOWS; と書くようにしてる
65 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:11:25.89 ID:xW7Pde1m.net] 既に存在しないフォルダが環境変数PATHに設定されてるとコマンド検索がそこで止まってしまう こんなのを使って時々確認するといい。 powershell $env:path -split ';'^|%{$_ ,(test-path $_ -patht cont ^)}
66 名前:デフォルトの名無しさん [2019/01/11(金) 19:37:34.13 ID:WNI2j4XF.net] 遅延環境変数OFFでやると面倒だ ONにするとパス名などの文字列の扱いが複雑化して読み取れないのが出る
67 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:39:03.28 ID:IAz54C40.net] PowerShell で、$env:path -split ';' と打つと、 C:\WINDOWS\system32 C:\WINDOWS Intel を除いて、これらが先頭に来る
68 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 07:44:55.84 ID:uK0WXiBn.net] >>67 普通はね
69 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 09:23:20.28 ID:e5YcHVOA.net] @echo off & set "p=%path%" :v for /f "delims=; tokens=1*" %%i in ("%p%") do set "p=%%j" & echo "%%i" if defined p goto :v おらの環境 "C:\Program Files (x86)\Common Files\Oracle\Java\javapath" "C:\ProgramData\Oracle\Java\javapath" "C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common" "C:\Program Files (x86)\Intel\iCLS Client\" "C:\Program Files\Intel\iCLS Client\" "C:\WINDOWS\system32" "C:\WINDOWS"
70 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 09:53:16.85 ID:e5YcHVOA.net] マイクロソフトがどこまでチェックしているか知らんが コマンド追加したら干渉する可能性はあるな
71 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 00:11:28.57 ID:xs+avKSw.net] C:\HOGE ├─aaa │ ├─old │ │ aaa1.bat │ │ │ └─src │ aaa1.bat │ ├─bbb │ ├─old │ │ bbb1.bat │ │ │ └─src │ bbb1.bat │ └─ccc ├─old │ ccc1.bat │ └─src ccc1.bat ↑のoldフォルダとその中身を一括で削除したいのですが、コマンドでは難しいでしょうか?
72 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 00:13:41.92 ID:xs+avKSw.net] ↑HOGEの下には実際にはaaa〜cccのようなフォルダが無数にあります…
73 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 00:15:44.50 ID:xs+avKSw.net] ↑たびたびすみません。 正確に言うと「HOGE配下に存在する"old"という名前のフォルダとその中身を全て削除する」です。
74 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 02:15:14.20 ID:pk2ilGy6.net] for /d /r とif文つかえばいいだけじゃん
75 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 04:39:06.95 ID:K0yQSeRR.net] del
76 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 07:09:39.32 ID:YWDkxQqJ.net] FOR /R C:\HOGE %%I IN (.) DO rd/s/q "%%~I\old" 2> nul
77 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 07:32:36.37 ID:YWDkxQqJ.net] バッチにするまでもない 直接入力なら%%を%に
78 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 09:22:02.93 ID:pk2ilGy6.net] >>76 rdのところ rd/s/q "%%~I\old\" にした方がよいと思う
79 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:27:11.29 ID:pk2ilGy6.net] おいらならこう書く for /d /r c:\hoge %a in (old) rd /q /s %a
80 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:28:21.11 ID:xs+avKSw.net] >>76 どうもありがとうございます!バッチリ削除できました。 >>78 私も>>78 さんのコメントを読んで例えば"old2"という名前のフォルダがあったらこれも消えてしまうのかも?と思ったのですが、そんなことはありませんでした。 でも見た目でそのような疑問を覚える人もいるかもしれないなと思い、特に不要ではあるのですが"old"のあとに"\"を付けることにしました。 ありがとうございます。
81 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:36:33.72 ID:xs+avKSw.net] でもrdはディレクトリ削除コマンドなんだから最後に"\"を付けるのは不自然か…
82 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 10:54:52.71 ID:YWDkxQqJ.net] >>78 なぜ? >>79 ワイルドカードじゃないとオプション /D は無意味 これでもいいが FOR /R %%I IN (OLD) DO RD/S/Q "%%I" 2> NUL
83 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 11:08:28.37 ID:pk2ilGy6.net] >>82 >ワイルドカードじゃないとオプション /D は無意味 ちゃんとフォルダのみをフ
84 名前:Bルタするよ、試してみてね [] [ここ壊れてます]
85 名前:デフォルトの名無しさん mailto:sage [2019/01/20(日) 11:18:39.20 ID:YWDkxQqJ.net] そうかな? RD の前に echo 付けて見たら? ファイルでも RD OLD がでるぞ FOR のヘルプをよく見てね
86 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 21:18:15.33 ID:9WBiq3dN.net] ざっくり言うと、 EternalForceBlizzard.bat C:\hoge とかいうバッチが欲しいという中二に対して「俺なら!」「俺なら!」とやってた流れ…かな。 >>82 どうでもいいけど全部大文字とかやめれ。 内容は知らんが死ぬほどダサい。
87 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 21:58:45.27 ID:rFmuVz+a.net] 今後は小文字にするよ。気が変わるかもしれんが。 forの括弧内のファイルは存在しなくてもスキップしない 例外はワイルドカードで対象はファイル /dだと対象はフォルダ ただそれだけの話だ
88 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 11:52:34.58 ID:dXptnPwJ.net] findstrの結果に文字列を連結したいのですがうまくいきません どうしたらよういでしょういか? cd /d %~dp0 type test1.txt | echo"りんご" & findstr "りんご" >> out.txt
89 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 14:00:46.60 ID:CTNOEPFx.net] call :a "りんご" test1.txt > out.txt & goto :eof :a echo %1 & findstr %1 %2
90 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 15:31:22.37 ID:dXptnPwJ.net] >88 ありがとうございます。 [りんご] [りんごを含んだ文] [りんごを含んだ文] [りんごを含んだ文] といった感じにでました。 [りんご][りんごを含んだ文] [りんご][りんごを含んだ文] [りんご][りんごを含んだ文] という感じはならないでしょうか?
91 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 15:58:11.82 ID:CTNOEPFx.net] call :a "りんご" test1.txt > out.txt & goto :eof :a for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i
92 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 16:44:03.03 ID:dXptnPwJ.net] >90 おお!、うまくいきました。ありがとうございます!。 エクセルの&のように簡単なのかと思ったら以外と複雑な処理で驚きです。
93 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 17:08:05.17 ID:nMQEwTi4.net] 単に行数を少なくするだけの&の使い方で デバッグもメンテの面でもいい事はないんで行を分けて書いたほうがいい
94 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 17:31:44.20 ID:CTNOEPFx.net] そういうのは質問者の方で調整よろしくお願いします
95 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:02:51.94 ID:nMQEwTi4.net] >>93 別に>>90 に文句言ってるわけじゃなくて 質問者が&に感心してたので、質問者にアドバイスのつもりで書いただけ
96 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:15:04.06 ID:CTNOEPFx.net] 言いたい事は分かります。 はっきり言って自分用のバッチはこんな書き方はしません。 行数を抑える為に繋いでるだけなんで。 バランス見て改行します。すみません。
97 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 18:27:13.64 ID:nMQEwTi4.net] って思ったら、質問者は&に感心してたわけじゃなくて 逆に&で簡単に書けない点が不満なんだな
98 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 19:15:10.41 ID:ak2Ch+AT.net] Basic言語では&は文字列結合演算子だが バッチスクリプトは出自からBasicじゃないので&は別の意味(ステートメントメント区切り)となる 文字列結合演算子自体が存在しない
99 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 13:46:03.43 ID:HgbeZ9kI.net] 昨日の質問者です、たびたびすみません 複数ワードを処理しようとして call :a "りんご" test1.txt > out.txt :a for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i call :a "みかん" test1.txt > out.txt :a for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i としたところ、うまくいったのですが これが5項目くらいになると dos窓に「別のプロセスが使用中です」と表示されてしまいます。 なにかメモリ的なものがいっぱいになるのでしょうか? 回避方法はありますでしょうか?
100 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 15:17:41.73 ID:HwNiCy+r.net] 意味不明だが? @echo off call :a "りんご" test1.txt > out.txt call :a "みかん" test1.txt >> out.txt goto :eof :a for /f delims^=^ eol^= %%i in ('findstr %1 %2') do echo.%1 %%i