2014-12-12 3 views
0

Как сделать пакетный скрипт, который принимает три необязательных параметра, но вы можете передать, например, первый и третий параметр? , например.Два необязательных аргумента в партии

@echo off 
set FIRST_PARAM=%1 
set SECOND_PARAM=%2 
set THIRD_PARAM=%3 

echo "%FIRST_PARAM%" 
echo "%SECOND_PARAM%" 
echo "%THIRD_PARAM%" 

И если я поставлю script_name.bat а это даст мне

"а"

"б"

"с"

но что если я хочу передать только a и c и получить

"а"

""

"с"

Возможно ли это?

+0

Запустите 'your_bat.bat" a "" "" c ", и вы можете увидеть результат: должен получить именно то, что вы просите ... – JosefZ

ответ

2

Переход к сценарию "a" "" "c" и "" будет вторым параметром.

Для dequote параметров можно использовать %~1:

@echo off 
set "FIRST_PARAM=%~1" 
set "SECOND_PARAM=%~2" 
set "THIRD_PARAM=%~3" 

echo "%FIRST_PARAM%" 
echo "%SECOND_PARAM%" 
echo "%THIRD_PARAM%" 

или (dequoted и цитировал снова). IF является необязательным и проверяет наличие пустых параметров.

@echo off 
if "%~1" NEQ "" set "FIRST_PARAM="%~1"" 
if "%~2" NEQ "" set "SECOND_PARAM="%~2"" 
if "%~3" NEQ "" set "THIRD_PARAM="%~3"" 

echo "%FIRST_PARAM%" 
echo "%SECOND_PARAM%" 
echo "%THIRD_PARAM%" 
Смежные вопросы