2014-02-12 28 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