.cmd ha righe seguenti
Start ROBOCOY src dest a* b* c* /z /w:1 r:1
Start ROBOCOY src dest d* e* f* g* /z /w:1 r:1
Start ROBOCOY src dest h* K* P* Y* /z /w:1 r:1
Start ROBOCOY src dest xry* srp* /z /w:1 r:1
Quando eseguo> Robocopy sample.cmd I avvio con 4 più finestre contemporaneamente la copia dei file come per comandi di cui sopra, aspetta per un altro file, come ha tempo di attesa, se il file viene utilizzato da un altro processo. È più più veloce mentre fa il lavoro simultaneamente.
Ora sto sviluppando GUI utilizzando C# Windows per eseguire il processo, invece di andare a comandare console e
inizio
main()
{
process.start("path of sample.cmd")
process.waitforexit()
label.text=" sucessful copy"
}
Tuttavia, se si prende il controllo di un unico processo, cioè cmd.exe e e ci sono 4 processi di robocopy nel task manager . al termine del processo cmd.exe, restituisce il cursore su label.text "Sucessfully completato". Mentre ci sono processi di robocopy ancora in esecuzione. puoi vedere le finestre di robocopy facendo il processo di copia.
ecco la domanda: voglio prendere il controllo di tutti i processi (cmd.exe e robocopy.exe) programmazione in C#, in modo che quando il Label.text dovrebbe visualizzare "completato con successo" solo quando tutti i comandi sono completati con successo ", se uno fallisce, quindi non c'è alcun punto nella GUI.
opzione 2 (simile a Biju ha scritto sopra): è meglio rimuovere gli script di comando di robocopy da sample.cmd (file batch) file e scrivere il codice per eseguire le 4 linee di robocopy in C#, ma come eseguire la riga di script robocooy scritta in formato .cmd, dato che hanno anche degli argomenti.Il codice esegue ogni processo di robocopy quindi ogni tornerà alla riga successiva del codice e se fallisce, possiamo rilevare l'errore e la visualizzazione di nella finestra del messaggio.
Spero che questo aiuti ... Tuttavia, sto cercando un modo migliore, se qualcuno può migliorare lo stesso.
fonte
2013-09-03 06:56:35
Perché non dovresti semplicemente utilizzare il metodo File.Copy()? –
Quali sono i tuoi requisiti? Robocopy ha molte caratteristiche (multithreading, curriculum, tentativi, ecc.), Quali sono quelli che ti interessano? – RedFilter
C'è un motivo particolare per cui stai usando RoboCopy? – Marco