2008-09-12 33 views
25

¿Alguien sabe de una línea de comandos de Windows (disponible en XP Pro o más tarde de forma predeterminada) que podría copiar un archivo mientras se muestra el progreso. No me importa si el indicador de progreso está en un terminal o en una ventana de GUI.Copie archivos en la línea de comandos de Windows con progreso

Esto está destinado a ser utilizado durante secuencias de comandos de archivos por lotes

+5

Robocopy es tu amigo aquí. –

+0

Excepto Robocopy es realmente una copiadora de carpetas en lugar de una copiadora de archivos. –

Respuesta

-2

Desde aquí se puede escribir un programa para hacer eso, tengo varios que he escrito, que los bytes de visualización copiados que el archivo que se está copiando. Si estás interesado, comenta y publicaré un enlace a uno.

+0

Sí, sé que podría escribir una cosa así. La idea es reutilizar todos los recursos disponibles y simplificar el intercambio de la secuencia de comandos. –

+2

Para ser justo Gulzar, Josef estaba ofreciendo enviarle uno y enviarle su recurso disponible para su reutilización. Sospecho que dejaste de leer después de 9 palabras. – harriyott

+0

Cualquier Josef, podrías compartirlos con el resto de la comunidad :) –

18

robocopy:

Robocopy, o "robusto copia de archivos", es una réplica command-line directorio y/o archivo command. Robocopy reemplaza funcionalmente Xcopy, con más opciones. Ha estado disponible como parte del Windows Resource Kit comenzando con Windows NT 4.0, y se introdujo por primera vez como una característica estándar en Windows Vista y Windows Server 2008. El comando es robocopy ...

+1

Cerrar, pero no disponible en XP y deafult. Aunque lo consideraré. –

+0

Es con Windows 2003 Server Resource Toolkit –

1

Este TechNet link tiene buena información para copiar archivos de gran tamaño. Utilicé una utilidad de servidor de intercambio mencionada en el artículo que muestra el progreso y utiliza las funciones de copia sin almacenamiento interno para una transferencia más rápida.

En otro caso, utilicé robocopy. Robocopy GUI hace que sea más fácil obtener las opciones de línea de comando correctas.

35

usó el comando de copia con el modificador/z para copiar en unidades de red, también funciona para copiar entre unidades locales. en XP Home Edition

+1

Respuesta perfecta. Esto funciona muy bien, también te permite reiniciar si se interrumpe una conexión. Sorprendido de que no haya notado esta característica en el pasado, gracias. – Justin

+0

xp any, y win7 any. – barlop

+0

+1 Gracias @adrian funcionó perfectamente. Sin embargo, ¿cómo es bueno copiar en unidades de red? Encuentro 'Robocopy' mejor para esos propósitos? – Anurag

0

Aquí está la secuencia de comandos que utilizo:

@ECHO off 
SETLOCAL ENABLEDELAYEDEXPANSION 
mode con:cols=210 lines=50 
ECHO Starting 1-way backup of MEDIA(M:) to BACKUP(G:)... 
robocopy.exe M:\ G:\ *.* /E /PURGE /SEC /NP /NJH /NJS /XD "$RECYCLE.BIN" "System Volume Information" /TEE /R:5 /COPYALL /LOG:from_M_to_G.log 
ECHO Finished with backup. 
pause 
4

Algunos tiempos interesantes con respecto a todos estos métodos. Si tienes conexiones Gigabit, no deberías usar la bandera/z o eso matará tu velocidad de conexión. Robocopy o dism son las únicas herramientas que funcionan a toda velocidad y muestran una barra de progreso. wdscase es para la multidifusión de un servidor WDS y puede ser más rápido si está creando más de 5 computadoras. Para obtener el tiempo 1:17, estaba maximizando la conexión Gigabit a 920Mbps, por lo que no obtendrás eso en dos conexiones a la vez. También tenga en cuenta que exportar el índice wim pequeño fuera del archivo wim más grande por más tiempo que simplemente copiar todo.

Model Exe  OS  switches  index size time link speed 
8760w dism  Win8  /export-wim index 1 6.27GB 2:21 link 1Gbps 
8760w dism  Win8  /export-wim index 2 7.92GB 1:29 link 1Gbps 
6305 wdsmcast winpe32 /trans-file res.RWM 7.92GB 6:54 link 1Gbps 
6305 dism  Winpe32 /export-wim index 1 6.27GB 2:20 link 1Gbps 
6305 dism  Winpe32 /export-wim index 2 7.92GB 1:34 link 1Gbps 
6305 copy  Winpe32 /z   Whole 7.92GB 25:48 link 1Gbps 
6305 copy  Winpe32 none   Wim  7.92GB 1:17 link 1Gbps 
6305 xcopy  Winpe32 /z /j  Wim  7.92GB 23:54 link 1Gbps 
6305 xcopy  Winpe32 /j   Wim  7.92GB 1:38 link 1Gbps 
6305 VBS.copy Winpe32    Wim  7.92 1:21 link 1Gbps 
6305 robocopy Winpe32    Wim  7.92 1:17 link 1Gbps 

Si usted no tiene robocopy.exe disponibles, por qué no ejecutarlo desde el recurso compartido de red que va a copiar sus archivos desde? En mi caso, prefiero hacerlo así no tengo que reconstruir mi WinPE boot.wim cada vez que quiero hacer un cambio y luego actualizar docenas de unidades de memoria.

11

El/a opción Esentutl permite copyng (single) Archivo de archivos con barra de progreso de la siguiente manera:

enter image description here

el comando debe ser similar:

esentutl /y "FILE.EXT" /d "DEST.EXT" /o 

El comando está disponible en cada máquina de Windows, pero la opción y se presenta en Windows Vista. Como funciona solo con archivos individuales no parece muy útil para los pequeños. Otra limitación es que el comando no puede sobrescribir los archivos. Here's un script de envoltura que verifica el destino y, si es necesario, puede eliminarlo (la ayuda se puede ver al pasar /h).

+0

¿Cómo sobrescribir los archivos existentes en el destino? ¿Debo eliminarlo manualmente? No puedo encontrar un interruptor en Win7. – PeterCo

+0

@PeterCo yes '/ o' switch está disponible en Win7. 'Esentutl' no puede sobrescribir los archivos, por lo que tendrá que agregar la línea' si existe el destino ... ' – npocmaka

Cuestiones relacionadas