Другой способ - использовать один параметр в двойных кавычках. При вызове другого приложения вы просто используете устройство %~N
в командной строке, чтобы удалить кавычки.
Если некоторые параметры, которые вы намереваетесь передать приложению, сами заключаются в двойные кавычки, эти символы кавычек должны повторяться дважды.
Вот сценарий иллюстрации, который использует первый параметр в качестве имени приложения, а второй - в виде комбинированного списка параметров для передачи приложению:
@ECHO OFF
CALL %1 %~2
Вот примеры вызова скрипта для разных случаев (передача одного параметра или нескольких параметров или параметров в кавычках).
Передать 1 параметр в приложение:
C:\>mybatch.bat app.exe "app_param"
C:\>mybatch.bat app.exe app_param
Передать несколько параметров:
C:\>mybatch.bat app.exe "app_param1 app_param2 app_param3"
Передать параметр, который включает пробелы (и поэтому должен быть заключен в кавычки):
C:\>mybatch.bat app.exe """parameter with spaces"""
Комбинированный пример: некоторые параметры с пробелами, другие - нет:
C:\>mybatch.bat app.exe "param_with_no_spaces ""parameter with spaces"" another_spaceless_param"