Для утверждения - действительно странный вывод (Batch Files) - PullRequest
1 голос
/ 03 июня 2011

У меня есть следующий пакетный оператор:

for /f "delims=" %%x in (file.lst) do set "offendingfile=%%x"

Хотя по какой-то действительно странной причине, когда он вызывается, он выводит:

"C:\Windows\calc.exe "

вместо

"C:\Windows\calc.exe"

Поскольку в конце есть пробел, я не могу использовать его должным образом с любыми другими операторами в командном файле, кто-нибудь знает, почему он это делает и как это исправить, так как это сводит меня с ума!

Ответы [ 2 ]

1 голос
/ 03 июня 2011

в вашем file.lst файле есть завершающий пробел после имени файла?

Я проверил это с file.lst, имеющим: c:\windows\calc.exe, и вывод был правильным, но если файл file.lst содержит c:\windows\calc.exe<SPACE>, вывод такой же, как у вас (и это также ожидаемый результат) ).

0 голосов
/ 03 июня 2011

Я считаю, что часть delims= оператора for удаляет поведение по умолчанию с использованием пробелов в качестве разделителей.Если вы удалите эту часть, то она должна удалить завершающий пробел:

for /f %%x in (file.lst) do set "offendingfile=%%x"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...