Ошибка синтаксического анализа аргументов командной строки пакетного файла, если параметр начинается с hypen

#windows #batch-file #cmd

#Windows #пакетный файл #cmd

Вопрос:

У меня есть приведенная ниже команда для вызова исполняемого файла:

 start /wait %arg1%  -c %arg2%
 

Я получаю окно ошибки с указанием :

 Windows cannot find '-c'. Make sure you typed the name correctly and try again
 

Как я могу исправить ошибку — помещение -c в одинарные или двойные кавычки тоже не помогает?

Я также пробовал из командной строки:

 .run.bat "c:Project Workbintest.exe"  c:config.ini
ECHO is off. 
The system cannot find the file -c.
 

Но оба файла exe и ini существуют.

Даже при запуске в командной строке:

 start /wait "c:Project Workbintest.exe" -c c:config.ini
 

выдает ту же проблему — Windows не может найти ‘-c’. Убедитесь, что вы правильно ввели имя, и повторите попытку

Комментарии:

1. "%arg1%" потребуется, если эта переменная содержит путь с пробелами.

2. Я обновил вопрос, да, в нем есть место

3. О, как насчет start "" /wait "c:Project Workbintest.exe" -c c:config.ini

4. Это работает — я не получаю сообщение об ошибке — в чем проблема и как она была исправлена?

5. Если вы посмотрите на start /? 1-й заключенный в кавычки параметр, ожидается, что это будет текст заголовка окна, а не путь к запускаемому приложению. Мы просто позаботились "" о том, чтобы удовлетворить это требование.