2013-06-21 22 views
3

我有一個包含未知數量的.txt文件命名爲這樣的文件夾:隱藏嵌套批循環中的括號?

todo.txt 
todo (1).txt 
todo (2).txt 
todo (3).txt 

我運行此命令通過文件迭代和文件中打印每行文字:for /r %f in (test\*.txt) do (for /f %p in (%f) do echo %p)

/R返回正確的文件名和/ F將輸出在todo.txt文本的每一行,但是當它擊中todo (1).txt它執行命令for /f %p in (C:\test\todo (1).txt) do echo %p和錯誤出來說The system cannot find the file C:\test\todo.

你如何逃避括號中 這個情況?

回答

3

使用usebackq選項,讓您加倍引號的文件名

for /r %f in (test\*.txt) do (for /f "usebackq" %p in ("%f") do echo %p) 
1

環繞引號之間的文件名:

"C:\test\todo (1).txt" 

其實這個問題是白色的空間,而不是括號。

+0

'在/ R%F(測試\ *。TXT)做(在( 「%F」/ F%P)做echo%p)'?當我這樣做時,它會回顯路徑\文件,而不是文本文件的內容。它仍然與todo(1).txt,echo'ing'C:\ test \ todo'錯誤 – Roger