2017-07-28 6 views
-1

テキストファイルからパスのリストを読み込むバッチファイルが必要です。リストにWindowsエクスプローラのサブフォルダ/ファイルのパスが含まれていない場合は、削除されます。例えばテキストファイルに記載されていないフォルダやファイルを削除する


D:\testに含まれていますmy checkList.txtでそう

Hi    <Directory> 
Bye    <Directory> 
Hello.txt 
cya.txt 
checkList.txt 

を:(これは削除すべきではないフォルダ/ファイルを含むリストである)

D:\test\Hi 
D:\test\Hello.txt 
D:\test\checkList.txt 

その結果、バッチファイルを実行した後、Bye foldercya.txt wil lは取り除かれます。

+2

注意スタックオーバーフローは、私の書き込みコードサイトではありません。質問する前にコードを追加する必要があります。そうでなければ、質問は「あなたが何を求めているのか不明」で閉鎖される可能性が最も高くなります。 – SteveFest

+0

また、 'checklist.txt'にはそれ自身の名前が含まれています。' checklist.txt'を削除する必要がありますか? – SteveFest

+0

なぜですか? 'checklist.txt'には削除するすべてのファイルが含まれていると言っていますので、' checklist.txt'もリストにあるので削除しないでください。 – SteveFest

答えて

0

ここにコードがあります。

@echo off 
setlocal enableDelayedExpansion 

for /f %%G in (checklist.txt) do set "str=%%~G !str!" 
for /f %%G in ('dir /b /s ^| findstr /v /i "%str%"') do ECHO del "%%~G" 
pause 

ファイルをループしてchecklist.txtにループし、不要なファイルを削除します。必要に応じてECHOを削除してください。

編集:私はfindstrが機能するための完全なパスを示すためにdirコマンドに/sフラグを追加しました。

関連する問題