2015-09-26 109 views
-1

我使用此線程的腳本accepted answer from Mofi。腳本複製文件夾並將其存儲在文本文件中,以便在下次運行時排除一次複製的文件夾。批處理 - 在文本文件中查找字符串並刪除整行

有時我有文件夾[incomplete]-different.names,我不想複製這個文件夾。我希望所有帶有字符串[incomplete]-的文件夾以及後面的名稱都被跳過或甚至沒有寫入文本文件%CurrentList%以供進一步處理。

這些是我以前的嘗試,但到目前爲止,我無法用頂部的腳本起牀和運行。 幫助會很好,並提前感謝。

嘗試1:

for /f "delims=" [incomplete]-%%D in ("%CurrentList%") do ( set str=%%D set str=!str: =! set str=!str: %%D =! echo !str!

嘗試2:

findstr /v /b /c:"[incomplete]-"%%D" "%CurrentList%" del "%%D"

+0

'findstr'使用正則表達式,'['和']'是正則表達式字符。沒有看到你想要過濾的例子,我們不知道需要處理什麼字符。或者,'find.exe'是一個更簡單的過濾器。但沒有準確的信息,你往往得不到好的建議。 – foxidrive

回答

0

你是非常接近你的第二次嘗試。

如果您只想刪除包含字符串[incomplete]-的%CurrentList%中的行,則可以將findstr /v的輸出指向臨時文件,然後用該文件覆蓋CurrentList。

findstr /v /c:"[incomplete]-" "%CurrentList%" >tmpList.txt 
move /y tmpList.txt "%CurrentList%" >nul 
相關問題