782) バッチでファイルの一括削除 KIT 2003/11/05(水) 14:59 |
|
複数の子ディレクトリの中にある同じ拡張子のファイルをBATファイルを使って一括削除したいのですが、ワイルドカードを使ってフォルダ指定をしてしまうとエラーが発生し、うまくできません。 誰か一括削除の方法を知っておられる方、教えていただけないでしょうか。 よろしくお願い致します。 |
|
784) Re:バッチでファイルの一括削除 じゃく 2003/11/05(水) 15:59 |
|
KITさんこんにちは。 >複数の子ディレクトリの中にある同じ拡張子のファイルをBATファイルを使って一括削除したいのですが、ワイルドカードを使ってフォルダ指定をしてしまうとエラーが発生し、うまくできません。 > >誰か一括削除の方法を知っておられる方、教えていただけないでしょうか。 > KITさんの作られたバッチがどのようなものか掲示されると 回答しやすいのですが、推測で書きます。 (OSも解らないのですが、2000/XP系と仮定して...) たとえば、subdir001 ~ subdir100 のなかにある jpgファイルをすべて削除する様な場合、 del subdir*\*.jpg と書いてもうまく動きません。 ディレクトリ指定にワイルドカードを使ってしまうと 同時にファイル名にワイルドカードを使えないので、 同じ拡張子だけを削除するということができないという ことでしょうか? この場合はfor文を使用すれば対応可能だと思います。 上記の場合なら次のようなバッチで削除可能です。 @echo off for /d %%a in (subdir*) do del "%%a\*.jpg" |
|
787) Re2:バッチでファイルの一括削除 KIT 2003/11/05(水) 16:48 |
|
>KITさんこんにちは。 > >>複数の子ディレクトリの中にある同じ拡張子のファイルをBATファイルを使って一括削除したいのですが、ワイルドカードを使ってフォルダ指定をしてしまうとエラーが発生し、うまくできません。 >> >>誰か一括削除の方法を知っておられる方、教えていただけないでしょうか。 >> > >KITさんの作られたバッチがどのようなものか掲示されると >回答しやすいのですが、推測で書きます。 >(OSも解らないのですが、2000/XP系と仮定して...) > >たとえば、subdir001 ~ subdir100 のなかにある >jpgファイルをすべて削除する様な場合、 >del subdir*\*.jpg >と書いてもうまく動きません。 >ディレクトリ指定にワイルドカードを使ってしまうと >同時にファイル名にワイルドカードを使えないので、 >同じ拡張子だけを削除するということができないという >ことでしょうか? > >この場合はfor文を使用すれば対応可能だと思います。 >上記の場合なら次のようなバッチで削除可能です。 > >@echo off >for /d %%a in (subdir*) do del "%%a\*.jpg" > > じゃくさん、こんにちは。 バッチ、OS名等を書いておくのを忘れていました。 申し訳ございません。 でも、じゃくさんの推測は当たっていましたよ。 早速、教えていただいた方法を試してみたところ 同じ拡張子のファイルの一括削除が行えました。 ワイルドカードでディレクトリ指定ができないのではなく、 ディレクトリとファイルの両方には使えなかったんですね。 知らなかったです。勉強になりました。 本当にありがとうございました。 |
|
789) Re2:バッチでファイルの一括削除 ふぇむ 2003/11/05(水) 16:51 |
|
>@echo off >for /d %%a in (subdir*) do del "%%a\*.jpg" おお、シンプルだ。すみません、長くて... 要はそういうことです(笑)。 そうか、for の /D って使ったことなかったですが、こういうときに使うんですね~。 |
|
786) Re:バッチでファイルの一括削除 ふぇむ 2003/11/05(水) 16:43 |
|
>複数の子ディレクトリの中にある同じ拡張子のファイルをBATファイルを使って一括削除したいのですが、ワイルドカードを使ってフォルダ指定をしてしまうとエラーが発生し、うまくできません。 >誰か一括削除の方法を知っておられる方、教えていただけないでしょうか。 今ちゃちゃいっ!とサンプルを書いてみました。以下です。 要所を修正して動かしてみてください。(消すコマンドはまだ入れずに...) 必要ならば、まず %DELLIST% までで確認してみるとか。 どんな感じでしょうか。 @echo off rem rem あるフォルダ以下全てのサブフォルダを含めて rem ある特定の拡張子のファイルを消すバッチの雛型サンプル rem setlocal rem ## 基点となるフォルダ(\で終端) set DELTARGET_BASEFOLDER=.\ rem ## 消す対象のファイルの拡張子 set DELTARGET_FILE_EXT=txt rem ## ワーク用のテンポラリ set DELLIST=%TEMP%\__DELLIST.txt rem ## テンポラリに対象をリストアップ set DELTARGET=%DELTARGET_BASEFOLDER%*.%DELTARGET_FILE_EXT% dir /b /s "%DELTARGET%" > "%DELLIST%" rem ## リストアップされた全件に対して処理 for /F "usebackq tokens=* delims=" %%z in ( "%DELLIST%" ) do ( call :TARGET_DEL "%%z" ) goto :end rem ## rem ## 1件削除 rem ## :TARGET_DEL set __DEL_TARGET=%~1 echo --- [ "%__DEL_TARGET%" ] を消します。 rem /// ここに削除コマンドや必要なら確認・入力待ちやログ出力等の rem /// 処理をかく。 goto :eof :end endlocal >よろしくお願い致します。 |
- ◆782. バッチでファイルの一括削除 (KIT) 2003/11/05(水) 14:59
- 784. Re:バッチでファイルの一括削除 (じゃく) 2003/11/05(水) 15:59
- 787. Re2:バッチでファイルの一括削除 (KIT) 2003/11/05(水) 16:48
- 789. Re2:バッチでファイルの一括削除 (ふぇむ) 2003/11/05(水) 16:51
- 786. Re:バッチでファイルの一括削除 (ふぇむ) 2003/11/05(水) 16:43
- 784. Re:バッチでファイルの一括削除 (じゃく) 2003/11/05(水) 15:59