У меня есть дерево папок, подобное этому (это только пример, оно будет глубже в моем реальном случае):
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"