这是我想用Jenkins启动的代码:
start cmd.exe /k "node "C:\Program Files\Appium\node_modules\appium\bin\appium.js" -a 127.0.0.1 -p 4723"
ping 127.0.0.1 -n 30 > nul
C:\path\NUnit-2.6.4\NUnit-2.6.4\bin\nunit-console.exe C:\path\NUnit-2.6.4\NUnit-2.6.4\bin\apk\UnitTestProject1.dll
这是我每次尝试暂停时得到的错误:
"ERROR: Input redirection is not supported, exiting the process immediately."
与timeout /T 60
和sleep 60
根据this post,超时在非交互式脚本中不起作用。
如何在我的情况下添加暂停?
为Will Ryan编辑:
我试试这个:
构建工作正常,但测试持续时间仅为0.5秒,暂停没有做任何事情
控制台输出是:
C:\Program Files\Jenkins\jobs\ZFAIL\workspace>echo "--"
"--"
C:\Program Files\Jenkins\jobs\ZFAIL\workspace>PING 1.1.1.1 -n 1 -w 30000 1>NUL
C:\Program Files\Jenkins\jobs\ZFAIL\workspace>echo "++"
"++"
C:\Program Files\Jenkins\jobs\ZFAIL\workspace>exit 0
Finished: SUCCESS
答案 0 :(得分:30)
我认为您可以在执行Windows批处理命令中使用以下命令(将等待100秒):
waitfor SomethingThatIsNeverHappening /t 100
这将返回一个错误,可能会破坏您的构建。为避免这种情况,请重定向错误输出:
waitfor SomethingThatIsNeverHappening /t 100 2>NUL
答案 1 :(得分:8)
您可以使用:
PING 1.1.1.1 -n 1 -w 30000 >NUL
这发送一次ping尝试并等待30秒以进行响应。不确定为什么你得到"错误:不支持输入重定向,立即退出进程。"消息,但我会定期主动使用上面的命令。
答案 2 :(得分:2)
如果您想摆脱Yauheni Basalai的答案中的错误消息,请尝试通过添加> nul 2>& 1
将stderr发送到stdoutwaitfor SomethingThatIsNeverHappening /t 100 >nul 2>&1
答案 3 :(得分:0)
我遇到了类似的问题,VSTS"命令行"使用cmd shell的实用程序(v 2. *),我使用了以下内容(来自提升的PowerShell会话):
Add-Content c:\windows\sleep.cmd "call powershell -NoProfile -ExecutionPolicy ByPass -command sleep %1"
答案 4 :(得分:0)
关于原始的PING方法
我认为-w选项仅在没有响应时才生效。从Wikipedia 1.1.1.1开始是“免费域名系统...”。您应为主机提供一个IP地址,该IP地址应不在线或未响应ping请求。像127.x.x.x这样的地址都是afaik回送地址,总是可以回答。
>nslookup 1.1.1.1
....
Name: one.one.one.one
Address: 1.1.1.1
>ping 1.1.1.1
Ping wird ausgeführt für 1.1.1.1 mit 32 Bytes Daten:
Antwort von 1.1.1.1: Bytes=32 Zeit=6ms TTL=58
...
至于贷方http://brisray.com/computers/batch-delay.htm:
@@@@
对于不存在的地址(例如1.1.1.1),请使用:
Ping 192.0.2.2 -n 1 -w 10000> nul
在这种情况下,-n 1表示仅发送一个数据包而不是4个数据包,并且-w 10000是超时(以毫秒为单位)。
@@@@
在撰写brishray.com文章时,实际上还没有1.1.1.1服务器存在。有趣的是,在示例中使用192.0.2.2代替1.1.1.1。无论如何,私有IP 192.0.2.2无法ping通是很幸运的。如今,例如“ Ping nasa.gov -n 1 -w 10000> nul”可以,但是可以持续多久,如果DNS失败了怎么办...
最后,我对Windows的“ waitfor”命令的回答深表同情
https://stackoverflow.com/a/43878566/2623045
https://stackoverflow.com/a/33368601/2623045
尽管它是Windows功能,但应该是Jenkins功能。
答案 5 :(得分:0)
根据this eclipse bug post,Windows批处理中的TIMEOUT有某种限制,不能在“后台脚本”中使用。
受让人大卫·威廉姆斯(David Williams)还说,可以改用“ PING”,您可能还会注意到还有其他选择,例如“ waitfor”。
我碰巧遇到了同样的问题,最后我选择了GnuWin32版本的sleep。在此场景中,仅coreutils就足够了。计数时,它使用相同的单位(秒)。