2013-07-11 23 views
5

我已經看到這個問題在這裏回答,但它似乎不適用於我的具體示例。我寫的第一次短暫的批處理文件,我希望它執行的命令是:強制批處理文件回答是提示

net time \\compname /set 

這通常提示一個是或否確認。我想避免這個批處理文件,看到的人說你可以添加:

echo y | net time... 

然而,當我使用這個命令做到這一點,我可以看到它要求進行確認,然後立即這個下面有一行說:「沒有提供有效的答覆。」

有沒有人知道是否有一個標誌,我不知道可以解決這個問題,或者爲什麼在這種情況下,輸入回聲y給出了這個有趣的迴應?

回答

8

net time命令支持(無證)參數「/是」,所以在這種情況下,答案很簡單:

net time \\compname /set /yes 
+0

很好用,謝謝。 – Colin

+2

這也適用於斷開所有網絡共享 - 「淨使用* /刪除/是」 –

+0

這也適用於停止服務'淨停止 /是' –

0

確認此行爲。我懷疑NET運行時輸入流是否被清除。如果我運行它並立即鍵入一些字符,它們在最終提示後顯示,但管道或文件重定向不起作用。一些旨在交互的程序確實有這種令人沮喪的特徵。

試試這個解決方法,它從電腦中檢索時間,然後使用datetime來設置它,它可以從管道獲取數據。

for /f "tokens=6-7" %a in ('net time \\compname') do (
    echo Setting system time to %a %b 
    echo %a | date > nul 
    echo %b | time > nul 
) 

而且記得要使用額外的%所有這些變量,如果這是在一個批處理文件。感謝Microsoft爲腳本撰寫繁瑣的工作。

+0

啊,感謝您的幫助。不幸的是,在這種解決方法中,你失去了秒/毫秒的準確性。 – Colin

+0

這是一個無賴。我想你需要爲這項工作尋找一個更好的工具或配置NTP服務而不是批量配置它:http://www.timetoolsglobal.com/2013/06/21/how-to-synchronize-microsoft-windows -to-a-ntp-server-1/ – paddy