2013-01-02 16 views
0

我試圖通過名稱和路徑刪除文件entrys保存到文本文件如果有關文件或文件夾路徑/名稱不包含空格批處理執行很好,但是如果文件名稱包含空格,則拒絕超出第一個空格。這是不分引號。無法引號處理文件路徑/名稱超出第一個空格

可能sombody請幫忙嗎?

for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q %%1 

也沒有工作是:

for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1" 

回答

1

您需要添加標記得到它讀取整個行

for /f "tokens=*" %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1" 

for /f循環讀取行,並將它們分成基於令牌在某些分隔符或分隔符上。默認情況下,分隔符分別爲<space><tab>,如果未指定,則只讀取第一個標記。 tokens選項可讓您覆蓋默認值並指定您想要的標記。在你的情況下,你想要所有這些,這就是爲什麼你需要把*(單個*代表「所有令牌」)。

或者,你可能只是指定「沒有界限」,通過重置delims選項,如:

for /f "delims=" %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1" 
+0

至極兩個更recomended爲什麼? (我是自學的程序員) –

+0

我不認爲有什麼區別,但我個人會說第一個,對我來說它比分隔選項增加了更多的清晰度。 –

相關問題