批处理文件建议

时间:2014-05-13 20:33:03

标签: batch-file scripting automation

我正在编写一个将运行我的自动化脚本的批处理文件。但是,我想在每次测试完成后要求用户允许继续操作?在这种情况下可以做些什么?此外,我试图在文件中放置有意义的命令行语句,但无法这样做。下面是我的批处理文件。

cd C:\Automation

ruby may11.rb

@ECHO OFF PAUSE

ruby multiYear.rb

@ECHO OFF PAUSE

ruby testcase2_mktAdjustment.rb

:choice
@ECHO OFF  set /P c=Do you want to exit [y/n]?
if /I "%c%" EQU "Y" goto :optA
if /I "%c%" EQU "N" goto :optB
goto :choice

:optA

pause 
exit

:optB
cmd /k

一旦脚本完成,它就会进入无限循环选项A& B选择'否'退出。

请帮忙。

阿布舍克巴克

2 个答案:

答案 0 :(得分:1)

提示继续提示的一种非常简单的方法是使用以下语句:

@echo Press Ctrl+C to quit now or
@pause

这将输出以下内容:

Press Ctrl+C to quit now or 
Press any key to continue . . .

按Ctrl + C将要求用户通过声明

确认取消批处理文件
Terminate batch job (Y/N)?

只有 Y N 才有效。按任何其他键,它将再次询问。

答案 1 :(得分:1)

@echo off
setlocal
cd C:\Automation

ruby may11.rb

PAUSE

ruby multiYear.rb

PAUSE

ruby testcase2_mktAdjustment.rb

:select
set /P c=Do you want to exit [y/n]?
if /I "%c%" EQU "Y" goto optA
if /I "%c%" EQU "N" goto optB
goto select

:optA

pause 
exit

:optB
:: no idea what you want to do here...

@echo off命令关闭echo命令。 @实际上会为当前命令关闭echo,因此ECHO OFF不会出现。

以您的方式使用它只会在屏幕上重现该行作为消息,仅此而已。它不会pauseset任何内容,只需显示关键字echo之后的行。

我改变了一些其他的东西。

:选择变为:选择因为choice是批处理关键字,最好避免作为标签。

goto中的冒号不是必需的,最好省略。

没有迹象表明您想要对n输入做什么。

您的set命令未被执行。 c未被设置,因此两个if测试都失败了,只是进入了一个无限循环。