Проблема с цитируемыми именами файлов в пакетном режиме - PullRequest
1 голос
/ 21 июля 2011

Позвольте мне иметь пакетную программу:

SET FOO=C:\temp\%1
bar.exe %FOO%

Когда я вызываю его с именем файла в двойных кавычках в качестве аргумента, я получаю эти кавычки посередине; и этот факт мешает другим программам работать правильно:

> fail.bat "aa bb.jpg"
SET FOO=C:\temp\"aa bb.jpg"
> bar.exe C:\temp\"aa bb.jpg"
cannot find file

Как получить переменную, содержащую правильное значение "C: \ temp \ aa bb.jpg"?

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

Вместо этого можно использовать %~1, это удаляет кавычки из параметра.
Тогда ваш код должен выглядеть как

SET FOO="C:\temp\%~1"
bar.exe %FOO%
0 голосов
/ 21 июля 2011

Попробуйте удалить букву диска, так как у меня были проблемы с этим в прошлом. Также это работает, если полное имя пути в кавычках, а не только один элемент с пробелами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...