.cmd tiene siguientes líneas
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
Cuando corro> Robocopy sample.cmd I comienza con 4 ventanas múltiples copiar archivos al mismo tiempo como por los comandos anteriores, se espera de otro archivo, como se tiene tiempo de espera, si el archivo está siendo utilizado por otro proceso. Es más más rápido que trabajo simultáneamente.
Ahora estoy desarrollando GUI usando C# Windows para ejecutar el proceso en lugar de ir al comando de la consola y
inicio
main()
{
process.start("path of sample.cmd")
process.waitforexit()
label.text=" sucessful copy"
}
Sin embargo, si se toma el control de un proceso, es decir, en cmd.exe y y hay 4 procesos robocopy en taskmanager. cuando se completa el proceso cmd.exe, devuelve el cursor a label.text "Exitosamente finalizado". Si bien aún hay procesos robocopy en ejecución. Puede ver las ventanas robocopy haciendo el proceso de copiado.
aquí está la pregunta: Quiero tomar el control de todos los procesos (cmd.exe y robocopy.exe) mediante programación en C#, por lo que cuando el label.text debe mostrar "completado con éxito" sólo cuando todos los comandos se completan con éxito ", si uno falla, entonces no hay ningún punto en la GUI.
opción 2 (similar a Biju ha escrito anteriormente): es mejor eliminar los comandos de comando robocopy de sample.cmd (archivo por lotes) file y write code para ejecutar las 4 líneas robocopy en C#, pero cómo ejecutar la línea de script rococooy escrita .cmd file, ya que también tienen argumentos. I code ejecuta cada proceso robocopy luego cada uno Volverá a la siguiente línea de código y, si falla, podemos detectar el error y mostrar en el cuadro de mensaje.
Espero que esto ayude ... Sin embargo, estoy buscando una forma mejor, si alguien puede mejorar la misma.
¿Por qué no debería simplemente usar el método File.Copy()? –
¿Cuáles son sus requisitos? Robocopy tiene muchas funciones (multihebra, reanudación, reintentos, etc.), ¿cuáles son las que le interesan? – RedFilter
¿Hay algún motivo en particular por el que esté utilizando RoboCopy? – Marco