Я попытался указать имя файла /EXCLUDE
с пробелами в нем для xcopy
, но оно всегда задыхается. Как я могу указать такой путь к xcopy
не копируя файлы /EXCLUDE
в текущий каталог и не используя старый хак для DOS ~1
?
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>dir source
Volume in drive C is OS
Volume Serial Number is 7C4E-86D4
Directory of c:\Users\binki\Documents\repos\xcopy_exclude_spacey\source
2013-01-03 16:39 <DIR> .
2013-01-03 16:39 <DIR> ..
2013-01-03 16:39 0 a
2013-01-03 16:39 0 a b c
2013-01-03 16:39 0 b
2013-01-03 16:39 0 c
4 File(s) 0 bytes
2 Dir(s) 117,279,027,200 bytes free
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>type "various exclude rules\a"
a
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>xcopy /E /EXCLUDE:"various exclude rules\a" source dest
Can't read file: "various exclude rules\a"
0 File(s) copied
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>xcopy /E "/EXCLUDE:various exclude rules\a" source dest
Invalid number of parameters
Ни один из способов цитирования имени файла, который бы хорошо работал в приличной оболочке, не работает для меня с xcopy. По какой-то причине синтаксис "/EXCLUDE:<filename>"
позволяет распознавать саму опцию. Другой синтаксис "/EXCLUDE:"<filename>"
приводит к тому, что выводится сообщение Не удается Can't read file: "<filename>"
, показывающее, что параметр анализируется правильно: двойные кавычки не позволяют аргументу разделяется на несколько частей. Тем не менее, это сообщение предполагает, что двойные кавычки не удаляются должным образом из имени файла с помощью xcopy, прежде чем он попытается открыть файл.
Отсюда следует, что если бы первый компонент пути, который я указал в /EXCLUDE
начинался с "
и мое имя файла /EXCLUDE
оканчивается на "
, я мог бы успешно ссылаться на этот файл из опции /EXCLUDE
xcopy. Но Windows отказывается позволить мне поместить символ "
моем имени.
Итак, как мне использовать xcopy в современном мире с пространственными именами файлов?