2012-01-20 182 views
0

我在Windows上使用下面的bat脚本。我的批处理脚本的第一行执行一个jar,它通过在shell中打印菜单提示符开始。我希望脚本的后续行在jar中执行时用作输入(例如,选择第一个菜单选项,然后输入用户名,然后输入用户姓)。在Windows上从批处理脚本执行多个命令

我试图在Windows 呼叫开始命令,但既没有使用正确的选项,或者是做错了什么,因为我一直都结束了收到“不被识别为一个内部或外部命令,可操作的程序或批处理文件“脚本中每个后续行的错误。

test.bat的
的java -classpath%LIBRARY_PATH%sample.Test
FName参数
LName的

回答

1

你需要把你的输入,在一个单独的文件,比你的程序重定向到从文件中读取输入,如下所示:

test.bat

[command] < [file]

[command]将是您启动java程序的命令,[file]将是包含其余输入的文件的完整路径。

+0

我似乎对这两种解决方案都有问题,每个回声或文本文件行都被用作菜单的输入。意思是,我为后面的所有行输入错误,因为名字没有映射到菜单中的数字选项。是否有我需要设置的标志或我应该格式化文件的方式?也许文字不应该以新的方式打破。 – MattB

1
(
    echo 1 
    echo FName 
    echo LName 
) | java -classpath %LIBRARY_PATH% sample.Test 

由于存在一些特殊情况,请注意回声。

+0

它看起来像一个空格被添加到我回声的每个字符串的末尾,所以我甚至不能使用第一个回显选择一个菜单选项。错误:输入选项:错误尝试阅读您的选择! 异常:java.lang.NumberFormatException:对于输入字符串:“1” – MattB

+0

事实上,我可以重现那些多余的空间。 (我之前并没有意识到它们的存在,因为我用过的测试忽略了它们。)我想这肯定是某种命令处理器的特质。 – Neil