командные файлы аргументы командной строки - PullRequest
1 голос
/ 04 июня 2010

привет, я задаю строку в переменной

set main = svn commit -m "Обновление номера версии сборки" install \ msbuild \ VersionNumber.txt

и передача "% main%" в качестве аргумента командной строки в другой скрипт template.bat.

, но в файле template.bat "Обновление номера версии сборки" указывается 2-й аргумент, а остальное - 3-й

один.

скажите, пожалуйста, как передать переменную main в качестве одного аргумента.

спасибо

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

Во 2-м файле с битами;

@echo whole command line is %*
1 голос
/ 04 июня 2010

Переменная% main% содержит пробелы, поэтому, если вы используете ее следующим образом:

template.bat %main%

Пакет будет интерпретировать это так:

template.bat svn blah blah blah

Так что% 1 будет только «svn» и т. Д. Если вы хотите, чтобы все содержимое% main% рассматривалось как один аргумент, вы должны заключить его в кавычки:

template.bat "%main%"

Проблема в том, что% 1 теперь содержит эти кавычки. Вы должны удалить их внутри template.bat, используя тильду:

%~1
...