Внутри пакетного сценария я хочу вызвать другой пакетный сценарий следующим образом:

call C:\Users\user name\test.cmd
call "C:\Users\user name\test.cmd"

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

Есть ли способ сделать это без использования start?

Изменить, больше контекста:

:runAndAssertCmd
    echo Running: %1
    call %~1 || exit /b
goto:eof

call :runAndAssertCmd "C:\Users\user name\bower install"

Это даст ошибку,

'C:\Users\user' is not recognized as an internal or external command, operable program or batch file.

1 ответ1

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .