2013-07-11 5 views
5

Ich habe diese Frage hier beantwortet, scheint aber nicht für mein spezifisches Beispiel zu funktionieren. Ich bin eine kurze Batch-Datei zum ersten Mal zu schreiben, und der Befehl, den ich es ausführen soll:Erzwinge Batch-Datei, um auf Eingabeaufforderungen zu antworten

net time \\compname /set 

Diese normalerweise fragt nach einem Ja oder Nein Bestätigung. Ich wollte dies für die Batch-Datei vermeiden und sah die Leute sagen, die Sie hinzufügen können:

echo y | net time... 

Allerdings, wenn ich es mit diesem Befehl tun, kann ich sehen, es fragt nach Bestätigung und dann im Anschluss an diese sofort hat sie eine Linie Sprich: "Es wurde keine gültige Antwort gegeben."

Weiß jemand, ob es eine Flagge gibt, von der ich keine Ahnung habe, die das beheben könnte oder warum in diesem Fall das Echo, das hineingereicht wird, diese komische Antwort gibt?

Antwort

8

der Netto-Zeit-Befehl unterstützt die (ohne Papiere) Parameter "/ ja", so die Antwort ist in diesem Fall ganz einfach:

net time \\compname /set /yes 
+0

Funktioniert gut, danke. – Colin

+2

Dies funktioniert auch für die Trennung von allen Netzwerkfreigaben - 'net use */DELETE/yes' –

+0

Dies funktioniert auch zum Stoppen von Diensten' net stop /yes' –

0

Dieses Verhalten wurde bestätigt. Ich frage mich, ob der Eingangsstrom gelöscht wird, wenn NET läuft. Wenn ich es ausführe und sofort einige Zeichen eintippe, erscheinen sie, nachdem sie schließlich die Eingabeaufforderung erhalten haben, aber die Umleitung oder Dateiumleitung funktioniert nicht. Einige Programme, die interaktiv sein sollen, haben diese frustrierende Eigenschaft.

Versuchen Sie diese Problemumgehung, die die Uhrzeit vom Computer abruft und sie dann unter Verwendung von date und time, die Daten aus einer Pipe nehmen können, einstellt.

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 
) 

Und denken Sie daran eine zusätzliche % für alle jene Variablen zu verwenden, wenn dies in einer Batch-Datei ist. Danke an Microsoft, dass Sie Scripting zu einer lästigen Pflicht gemacht haben.

+0

Ahh, danke für die Hilfe. Leider verlieren Sie bei diesem Workaround die Genauigkeit von Sekunden/ms. – Colin

+0

Das ist ein Mist. Ich denke, Sie müssen ein besseres Tool für den Job suchen oder den NTP-Dienst konfigurieren, anstatt ihn zu mischen: http://www.timetoolsglobal.com/2013/06/21/how-to-synchronize-microsoft-windows -to-a-ntp-server-1/ – paddy

Verwandte Themen