[前の記事]« WindowsXPのスタートメニューにあるアプリ名称をバッチで削除したい
[次の記事]別のバッチファイルの呼び出しがうまくいかない »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ
▲カテゴリー「FOR /F」索引へ

[NT系]複数ディレクトリ内のファイルをバッチで一括削除したいが、ワイルドカードを使うとエラーが発生する

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
 
 


カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ
カテゴリー「FOR /F」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2003年11月05日 17:27に投稿されたエントリーのページです。

ひとつ前の投稿は「WindowsXPのスタートメニューにあるアプリ名称をバッチで削除したい」です。

次の投稿は「別のバッチファイルの呼び出しがうまくいかない」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート