2017-07-28 63 views
-1

我需要一個批處理文件,該文件從文本文件中讀取路徑列表。如果列表不包含Windows資源管理器中的子文件夾/文件的路徑,它將被刪除。刪除文本文件中未列出的文件夾/文件


例如,在D:\test包含:

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

所以:(這是一個包含文件夾/文件列表中不應該被刪除)

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

因此,運行批處理文件後,Bye foldercya.txt將會我被刪除。

+2

請注意Stack Overflow不是一個爲我寫的代碼站點。在問你之前,你應該添加你的代碼,否則,這個問題很可能會因「不清楚你要問什麼」而關閉。 – 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工作的完整路徑添加/s標誌的dir命令。