ฉันมีโครงสร้างโฟลเดอร์เช่นนี้ (เป็นเพียงตัวอย่างเท่านั้นมันจะลึกลงไปในกรณีจริงของฉัน):
C:\test
|
+---folder1
| foo bar.txt
| foobar.txt
|
+---folder2
| foo bar.txt
| foobar.txt
|
\---folder3
foo bar.txt
foobar.txt
ไฟล์ของฉันมีช่องว่างอย่างน้อยหนึ่งช่องในชื่อและฉันต้องการดำเนินการกับคำสั่งดังนั้นฉันจึงสนใจ foo bar.txt แต่ไม่ใช่ใน foobar.txt
ฉันพยายาม (ภายในไฟล์แบทช์):
for /r test %%f in (foo bar.txt) do if exist %%f echo %%f
echo
ที่คำสั่งเป็นที่เรียบง่าย
มันไม่ทำงานเพราะพื้นที่ถูกข้ามไปและฉันไม่ได้เอาต์พุต
ใช้งานได้ แต่ไม่ใช่สิ่งที่ฉันต้องการ:
for /r test %%f in (foobar.txt) do if exist %%f echo %%f
มันพิมพ์:
C:\test\folder1\foobar.txt
C:\test\folder2\foobar.txt
C:\test\folder3\foobar.txt
ฉันพยายามใช้เครื่องหมายคำพูด (") แต่มันไม่ทำงาน:
for /r test %%f in ("foo bar.txt") do if exist %%f echo %%f
ไม่ทำงานเนื่องจากเครื่องหมายคำพูดยังคงรวมอยู่ในผลลัพธ์:
C:\test\folder1\"foo bar.txt"
C:\test\folder2\"foo bar.txt"
C:\test\folder3\"foo bar.txt"