【问题标题】:run batch file using parameters taken from the user使用取自用户的参数运行批处理文件
【发布时间】:2016-12-29 10:29:16
【问题描述】:

我正在尝试创建一个批处理脚本,它将从用户那里获取两个输入参数并将这些参数传递给调用一个脚本,该脚本又应该调用另一个脚本。我是批处理脚本的新手。我为此编写了以下代码,但最终脚本失败。无法正确获取用户发送的参数。

流程如下: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

【问题讨论】:

  • 那么,您发现问题出在哪个文件中了吗?你调试/回显变量了吗?

标签: batch-file scripting


【解决方案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"

【讨论】:

    猜你喜欢
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2017-10-10
    • 1970-01-01
    相关资源
    最近更新 更多