2013-07-11 11 views
5

Ho visto qui la risposta a questa domanda, tuttavia non sembra funzionare per il mio esempio specifico. Sto scrivendo un file batch breve per la prima volta, e il comando lo voglio eseguire è:Forza il file batch per rispondere sì alle richieste

net time \\compname /set 

Ciò induce normalmente per un sì o nessuna conferma. Volevo evitare questo per il file batch e ho visto gente dire è possibile aggiungere:

echo y | net time... 

Tuttavia, quando lo faccio con questo comando, posso vedere che chiede conferma e poi subito dopo questo ha una linea dicendo: "Non è stata fornita alcuna risposta valida".

Qualcuno sa se esiste una bandiera di cui sono inconsapevole che potrebbe risolvere il problema o perché in questo caso l'eco che viene convogliata dà questa risposta divertente?

risposta

8

il comando net time supporta la (non documentato) il parametro "/ sì", quindi la risposta in questo caso è molto semplice:

net time \\compname /set /yes 
+0

Funziona alla grande, grazie. – Colin

+2

Questo funziona anche per la disconnessione da tutte le condivisioni di rete - 'net use */DELETE/yes' –

+0

Questo funziona anche per l'arresto dei servizi' net stop /yes' –

0

Confermato questo comportamento. Mi chiedo se il flusso di input viene eliminato quando viene eseguito NET. Se lo eseguo e digito immediatamente alcuni caratteri, vengono visualizzati dopo che alla fine viene visualizzato il prompt, ma il piping o il reindirizzamento dei file non funziona. Alcuni programmi che devono essere interattivi hanno questo tratto frustrante.

Prova questa soluzione, che recupera l'ora dal computer e la imposta utilizzando date e time che può acquisire dati da una pipe.

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 
) 

e ricordarsi di utilizzare un extra % per tutte quelle variabili se questo è in un file batch. Grazie a Microsoft per aver reso lo scripting un compito ingrato.

+0

Ahh, grazie per l'aiuto. Sfortunatamente si perde la precisione del secondo/ms con questa soluzione. – Colin

+0

Questo è un peccato. Immagino che dovrai cercare uno strumento migliore per il lavoro o configurare il servizio NTP piuttosto che farlo in batch: http://www.timetoolsglobal.com/2013/06/21/how-to-synchronize-microsoft-windows -to-a-ntp-server-1/ – paddy

Problemi correlati