我正在尝试创建一个批处理脚本,该脚本将从用户获取两个输入参数并传递这些参数以调用一个脚本,而脚本又调用另一个脚本。我是批处理脚本的新手。我为此编写了以下代码,但最终脚本失败了。它没有正确获取用户发送的参数。
流程如下:userInput.bat
调用mybat.bat
,调用startTask.bat
。
userInput.bat
的代码:
set /p userName="Enter the userName: "
echo %userName%
set /p dateofbirth="Enter the dateofbirth: "
echo %dateofbirth%
CALL mybat.bat %userName% %dateofbirth%
mybat.bat
的代码:
CALL startTask.bat %1 "myHouseAddress" %2
CALL startTask.bat %1 "myOfficeAddress" %2
startTask.bat
的代码:
java -classpath joda-time-1.6.jar com.mycode.somecode.KickOffTask %1 %2 %3
答案 0 :(得分:1)
您的脚本似乎工作正常,除非该脚本只是程序的一部分
我做了一些改进:
%username%
更改为%user%
,因为%username%
是预定义变量<强> userinput.bat:强>
@echo off
:query.user
set "user="
set /p user="Enter the username: "
if not defined user (goto query.user) else (echo user=%user%)
:query.dateofbirth
set "dateofbirth="
set /p dateofbirth="Enter dateofbirth: "
if not defined dateofbirth (goto query.dateofbirth) else (echo dateofbirth=%dateofbirth%)
call mybat.bat "%user%" "%dateofbirth%"
<强> mybat.bat:强>
@echo off
call startTask.bat "%~1" "myHouseAddress" "%~2"
call startTask.bat "%~1" "myOfficeAddress" "%~2"
<强> startTask.bat:强>
@echo off
java -classpath joda-time-1.6.jar com.mycode.somecode.KickOffTask "%~1" "%~2" "%~3"