106

次のようなバッチスクリプトがあります。

D:
del "D:\TEST\TEST1\Archive\*.TSV" 
del "D:\TEST\TEST1\Archive\*.TXT"
del "D:\TEST\TEST2\Archive\*.TSV" 
del "D:\TEST\TEST2\Archive\*.TXT"
del "D:\TEST\TEST 100%\Archive\*.TSV" 
del "D:\TEST\TEST 100%\Archive\*.TXT"

上記のコードは、フォルダー以外のすべてのフォルダーからすべての ".txt" および ".tsv" ファイルを削除しますTEST 100%。からファイルを削除するとTEST 100%、エラーが発生しThe Path could not be foundます。フォルダー名の % 記号が問題を引き起こしていると思います。問題を解決し、フォルダからファイルを削除する方法を教えてもらえますTEST 100%か?

4

5 に答える 5

117

% を別のものでエスケープする必要があります...

del "D:\TEST\TEST 100%%\Archive*.TXT"
于 2012-12-07T13:35:48.843 に答える
12

バッチで物事を行うには複数の方法があるため、2 倍のパーセントでエスケープして%%もうまくいかない場合は、次のような方法を試すことができます。

set olddir=%CD%
cd /d "path of folder"
del "file name/ or *.txt etc..."
cd /d "%olddir%"

仕組み:

set olddir=%CD%変数"olddir"または任意の他の変数名を、バッチ ファイルが起動されたディレクトリに設定します。

cd /d "path of folder"バッチが参照する現在のディレクトリを変更します。引用符を保持し、フォルダーのパスを目的のパスに変更します。

del "file name/ or *.txt etc..."バッチが見ている現在のディレクトリ内のファイルを削除します。ファイル名の前にディレクトリ パスを追加せずに完全なファイル名を付けるか、同じ拡張子*.txtまたは必要な拡張子を持つ複数のファイルを削除します。

cd /d "%olddir%"古いパスで保存された変数を取得し、バッチを開始したディレクトリに戻ります。バッチを以前のディレクトリ パスに戻したくない場合は重要ではありません。変数名を次のように変更する前に述べたように、を変更することで、あなたが望むものは何でもset olddir=%CD% line

于 2013-10-18T21:54:46.783 に答える
10

ソフトウェアをデスクトップに保存したとしましょう。
アンインストーラー プログラムのようにフォルダー全体を削除する場合は、これを使用できます。

cd C:\Users\User\Detsktop\
rd /s /q SOFTWARE

これにより、ソフトウェアというフォルダー全体と、そのすべてのファイルとサブフォルダーが削除されます

はい/いいえのオプションがないため、正しいフォルダーを削除してください

于 2014-05-29T19:12:21.233 に答える
4

削除する必要があるファイルには拡張子txtがあり、場所にあると考えてくださいD:\My Folder。次に、bat ファイル内で以下のコードを使用できます。

cd "D:\My Folder"
DEL *.txt 
于 2016-09-03T15:36:06.200 に答える