2012-12-07 12 views
71

私は以下のようなバッチスクリプトを持っています。ファイルを削除するためのバッチスクリプト

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" 

上記のコードは、フォルダTEST 100%から除いてすべてのフォルダからすべての「.TXT」および「.TSV」ファイルを削除します。 TEST 100%からファイルを削除する場合は、エラーがThe Path could not be foundと表示されます。私は、フォルダ名の%記号が問題を作り出すと思います。 問題を解決して、フォルダTEST 100%からファイルを削除するには、誰も私を導くことができますか?

+0

なぜ最初の行に引用符がありますか?また、バッチファイルが最初の行でそのドライブに変更されたときに、ドライブを参照しているのはなぜですか?私はあなたの問題を複製しようとし、すべてがうまくいった。 Test 100%のアーカイブが存在することを確認しましたか? – RonaldBarzell

答えて

85

あなたは別と%をエスケープする必要があります...

del "D:\TEST\TEST 100%%\Archive*.TXT" 
+0

私はOPを話すことができませんが、私のシステムでは、%でパスを見つけることは問題ありません。そして%%でエスケープすると、システムはそれを見つけることができません。 – RonaldBarzell

+0

@ user1161318 - 私はWindows 7でテストしました。エスケープがなければ、バッチファイルで "指定されたパスが見つかりません"という結果になります。私はそれが動作すると投稿した。 –

+0

オク、XPで私は反対の結果を得る。 %でパスを見つけられますが、%%でパスを見つけることができません。 – RonaldBarzell

5

あり、バッチで物事の複数の方法がありますので、二重のパーセント%%とエスケープはあなたのために働いていない場合、その後、あなたが試みることができますこのような何か:

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

この仕組み:

set olddir=%CD%は、変数"olddir"または任意の他の変数名yを設定しますあなたのバッチファイルは というディレクトリにあります。

cd /d "path of folder"は、バッチが見ている現在のディレクトリを変更します。 の引用符を保持し、目的のパス先のフォルダのパスを変更してください。

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

cd /d "%olddir%"は、以前のパスで保存された変数を使用して、バッチを開始したディレクトリに戻ります。バッチを以前のディレクトリパスに戻したくない場合は重要です。 set olddir=%CD% lineを変更して、名前を希望どおりに変更することができます。

+0

トリプルではないので、ダブルスキャッピングはうまくいくはずです... – erm3nda

-7

バッチコードでパスにスペースが含まれていないようにして、フォルダ名を "TEST 100%"から "TEST_100%"に変更し、新しいコードを del "D:\ TEST \ TEST_100%\ Archive * .TXTは」

希望これは

+4

それは聞いたことがありません。それは新しいのですか?荒れ狂い。引用符で囲んでいれば、スペースがなくても動作します。 – Blacktempel

8

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

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

これはソフトウェアと呼ばれるフォルダ全体を削除し、そのファイルとサブフォルダ

のすべては、あなたがこの

2

を考えてみましょうはい/いいえオプションがありません原因正しいフォルダを削除することを確認します削除する必要があるファイルの拡張子がtxtで、位置がD:\My Folderの場合、batファイル内で以下のコードを使用できます。

cd "D:\My Folder" 
DEL *.txt 
関連する問題