命令行参数while

时间:2014-02-12 01:16:02

标签: batch-file command-line parameters

我想用patameters运行命令行以使其等待连接然后执行“gpupdate / force”然后nofity用户完成作业。我坚持的是让它等待连接。

cmd /c echo Connect a network cable. & *something* & echo n | gpupdate /force & msg * Done.

如果某些内容正在关注代码,那么它将起作用:

:top
ping -n 1 site.com >nul
if errorlevel 1 (
    goto top
)

但我不知道如何将它作为参数写在一行上。

我怎么能按照我希望的方式工作?也欢迎替代解决方案!

2 个答案:

答案 0 :(得分:2)

我不理解您对批处理脚本的厌恶。但是下面的一个班轮应该可以工作。

@echo Connect a network cable.&cmd /q /c "for /l %N in () do ping -n 1 site.com >nul&&exit"&echo echo n^|gpupdate /force&msg * Done.

关键位是cmd /q /c "for /l %N in () do ping -n 1 site.com >nul&&exit"。创建一个进入无限FOR循环的新CMD.EXE进程。它不断地ping网站直到它成功。 EXIT命令仅在PING成功时由于&&运算符而执行。 EXIT执行后,控制权将返回到父CMD.EXE进程。

答案 1 :(得分:0)

为什么不把它全部作为批处理文件?

@echo off
echo Connect a network cable. 
:top
ping -n 1 site.com >nul || goto :top
echo Connected.
gpupdate /force 
msg * Done.