2014-02-12 30 views
0

我想与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 
) 

,但我不知道我怎么会写在1线作为参数。

我该如何按我希望的方式工作?替代解决方案也是受欢迎的!

回答

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"。一个新的CMD.EXE进程被创建,进入一个无限的FOR循环。它连续不断地对网站进行调查,直到成功。 EXIT命令仅在PING成功时由于&&运算符而执行。 EXIT执行后,控制权返回到父CMD.EXE进程。

+0

这正是我所期待的。谢谢。 – LukAss741

0

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

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

因为只有在任何计算机上使用键盘宏才能运行它 - 不仅仅是那些具有此文件的计算机。不管怎么说,还是要谢谢你。 – LukAss741

+0

@ LukAss741 - 各种计算机如何获得宏定义?也许是一个文件?在我看来,无论如何,你都需要一个文件,除非你希望用户键入一个复杂的命令。 – dbenham

+0

通过按键:win c m d/c e c h o C o n等等......扫描完qr,aztec或其他代码后,由扫描仪输入。这就是为什么我只想把它作为命令行参数的原因。 – LukAss741