Проблема с вводом и интервалом в пакете

Мне нужно ввести путь к файлу для пакетного файла, который я сделал.

C:\PATH\TO\DESKTOP>Batch "File Path With Spaces"

Пакетный файл использует %1. Я считаю, что пробелы в пути к файлу вызывают проблемы. Я пытался возиться с кавычками, не повезло.

Кто-нибудь знает?


person Kuews    schedule 16.08.2013    source источник
comment
Трудно ответить, не видя командный файл.   -  person FrankPl    schedule 17.08.2013


Ответы (2)


Если в вашем пакетном файле есть %1 или "%1", замените их на "%~1".

%~1 удаляет все кавычки, которые могут быть вокруг строки, а "%~1" заменяет все строки кавычками, чтобы защитить пробелы и подозрительные символы.

person foxidrive    schedule 17.08.2013

Если вам не нужны никакие другие аргументы, это очень просто:

В вашем командном файле скажите, что вы хотели вывести «текст» в файл. Вместо того, чтобы ссылаться на аргумент как %1, ссылайтесь на него как %* (включая %1 %2 %3 %4 %5 %6 %7 %8 %9 ...).

C:\PATH\TO\DESKTOP>Batch C:\users\%username%\file name with spaces\File Name.txt

и в Batch.bat:

Echo "text" >> "%*"

И готово. Просто не забудьте заключить %* в двойные кавычки, и все будет в порядке!

Мона

person Monacraft    schedule 17.08.2013