È vero che alcune volte, i file batch hanno bisogno di una pausa per eseguire correttamente i comandi?


1

Ciò che intendo con ciò, ad esempio, è se un file deve essere spostato in una directory e la riga di codice successiva presuppone che il file sia presente e tenta di aprirlo, ma lo spostamento stesso non è terminato, causando un errore ? Come se fosse necessario includere ping localhost -n 5 tra due comandi?


1
Bene, se il file è come 4 GB, sì, non può aprire il file se è ancora in fase di trasferimento. Un modo è quello di utilizzare ping 127.0.0.1 -n 6 > nulOfcourse 4 GB richiederà più di 5 secondi. DOS non attende il completamento di 1 comando.
Dylan Rz,

Ok, questo è quello che mi chiedevo, se controlla se un comando è finito o meno prima di passare al successivo
Daniel,

Nope Dos non attenderà il completamento di 1 comando. Probabilmente dovrai usare le istruzioni If else If xx file exists - go to.per avere l'idea.
Dylan Rz,

Risposte:


4

Se si utilizza un batch normale e non si implementa START o allo stesso modo per generare nuovi processi, attenderà il completamento del comando precedente prima di continuare.

Il batch non avanza al comando successivo fino a quando non riceve un codice di uscita dal comando precedente. Pertanto, nel contesto di una copia di file di base, attenderà il completamento del comando di copia. Puoi vederlo semplicemente eseguendo un comando Copia dal prompt dei comandi; non ti restituirà il prompt finché non sarà terminata la copia.

Ora, dove potresti trovarti nei guai è quando avvii un programma che genera nuovi processi che funzionano e che devi aspettare.

Ad esempio, il programma di avvio potrebbe uscire (restituendo un codice di uscita al file batch, provocandone il proseguimento) prima che il nuovo processo avviato abbia terminato di fare ciò che è necessario prima di continuare il batch.

In questi casi dovrai mettere in pausa il file batch per un certo periodo di tempo (e sperare che finisca entro quel tempo), oppure utilizzare un ciclo nel batch per monitorare il completamento del processo (cioè: con tasklist) prima di continuare .


Molto ben spiegato
Daniel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.