2009-06-12 67 views
184

Tengo una carpeta de almacenamiento en una red en la que todos los usuarios almacenan sus datos activos en un servidor. Ahora ese servidor será reemplazado por uno nuevo debido a un problema de ubicación, así que necesito copiar los archivos de subcarpetas de la carpeta de almacenamiento del servidor anterior a la nueva carpeta de almacenamiento del servidor. Tengo a continuación ex:Archivo por lotes para copiar archivos de una carpeta a otra carpeta

de \ Oldeserver \ storage \ data & archivos a \ Nuevo servidor \ almacenamiento \ datos & archivos.

+1

Supongo que estás hablando de un entorno de Windows? –

+1

@pluma [Los archivos por lotes son .bat. Sí, solo se ejecutan en Windows.] (Http://en.wikipedia.org/wiki/Batch_file) –

+1

@ HugoM.Zuleta, conozco los archivos .bat. Pero el "archivo por lotes" no garantiza necesariamente un entorno Windows. El uso del término es anterior a Windows (al igual que los archivos .bat) e incluso he visto a principiantes usar el término para significar "scripts de shell" en entornos * nix. –

Respuesta

17

Es posible que desee echar un vistazo a XCopy o RoboCopy que son soluciones bastante completas para casi todas las operaciones de copia de archivos en Windows.

+3

RoboCopy parece ser mejor que XCopy porque xcopy solicita decisiones de archivos o carpetas. Y no puedo rechazarlo. DEBE poder trabajar completamente automático. – Bitterblue

+0

@ mini-me Sé que es muy tarde, pero no puedo encontrar el mismo interruptor relevante. Terminé recurriendo a crear un archivo en blanco con el mismo nombre que estoy copiando y luego sobrescribirlo. Si el archivo ya existe, entonces no se molesta en preguntar si es un archivo o directorio. (Si desea el directorio automático, puede agregar un '/' a la ruta y lo hará). Espero que esto ayude a la gente del futuro! –

+2

@Eve Como referencia, 'echo f | xcopy source destination/y' lo hará automático. Asigna todas las preguntas con una "f" como respuesta. También pasará solicitudes de sobrescritura (f se toma como sí, creo). – ndm13

0

Mire rsync basado en la herramienta de Windows NASBackup. Será una ventaja si está familiarizado con los comandos de rsync.

348

xcopy.exe es definitivamente tu amigo aquí. Está integrado en Windows, por lo que su costo no es nada.

Sólo xcopy /s c:\source d:\target

Usted probablemente querrá ajustar algunas cosas; algunas de las opciones añadimos también incluyen los siguientes:

  • /s/e - copia recursiva, incluyendo la copia de los directorios vacíos.
  • /v - agregue esto para verificar la copia contra el original. más lento, pero para el paranoico.
  • /h - copia el sistema y los archivos ocultos.
  • /k - copie los atributos de solo lectura junto con los archivos. de lo contrario, todos los archivos se convierten en lectura-escritura.
  • /x - si le interesan los permisos, es posible que desee /o o /x.
  • /y - no solicite antes de sobrescribir los archivos existentes.
  • /z - si cree que la copia puede fallar y desea reiniciarla, utilice esto. Coloca un marcador en cada archivo mientras se copia, por lo que puede volver a ejecutar el comando xcopy para retomarlo desde donde lo dejó.

Si piensa que el xcopy puede fallar un punto intermedio (como cuando se está copiando través de una conexión de red escamosa), o que usted tiene que detenerlo y desea continuar más tarde, puede utilizar xcopy /s/z c:\source d:\target.

Espero que esto ayude.

+14

se recomienda citar su fuente y el bloc de destino ... – VDP

+1

@Iavinio Está pidiendo un archivo o directorio al copiar un archivo. ¿Hay alguna manera de reprimir eso? – Bitterblue

+0

Hi @ mini-me: descubrí que si se trata de un directorio, puede especificar un carácter '/' al final y no verá ese mensaje. – DaveDev

37

Para que quede claro, cuando usa xcopy /s c:\source d:\target, ponga "" alrededor de c: \ source y d: \ target, de lo contrario, obtendrá el error.

es decir, si hay espacios en la ruta de acceso es decir, si tiene:

"C:\Some Folder\*.txt" 

pero no es necesario si tiene:

C:\SomeFolder\*.txt 
31

Mi favorito a los datos de copia de seguridad es:

ROBOCOPY "C:\folder" "C:\new_folder" /mir 

/mir es para espejo. También puede usar/mov para mover archivos. Reproduce exactamente la misma carpeta. Puede eliminar/sobrescribir archivos según sea necesario. Funciona muy bien para mi Es más rápido que xcopy/copy. Está construido en Windows también.

Fuente: '? Especificar un nombre de archivo o directorio en el objetivo (F = Archivo, D = directorio)' http://technet.microsoft.com/en-us/library/cc733145.aspx

+2

Apoyo esto. Es realmente rápido mucho más rápido que xcopy – Ike

+0

¿Hay alguna forma de eliminar thumbsdd de forma recursiva similar a esto? – drooh

11

Para omitir el Petición con xcopy, puede hacer lo siguiente ...

echo f | xcopy /f /y srcfile destfile

o para aquellos de nosotros simplemente copiar grandes subestructuras/carpetas:

uso/i, que especifica el destino debe ser un directorio si la copia más de un archivo

+0

(echo "f" para archivos o "D" para directorios) – JinSnow

+0

tratando de hacer esto ahora y simplemente no funciona - Siempre recibo indicaciones cuando trato de copiar un archivo a otro directorio. Usando Win 10 si eso lo afecta en absoluto echo f | xcopy/f/y "My.dll" "C: \ myFolder \ My.dll". Lo he intentado con una combinación de otros switches inútilmente (y con mayúscula F) – Prof

0

si desea copiar el archivo no utilizar ruta absoluta, ruta relativa en otras palabras:

no se olvide de escribir antislash en el camino y no recortar (^^)

ejemplo:

copy children-folder\file.something .\other-children-folder 

PS: ruta absoluta puede ser recuperada uso de estos comodines llamados "parámetros de proceso por lotes"

@echo off 
    echo %%~dp0 is "%~dp0" 
    echo %%0 is "%0" 
    echo %%~dpnx0 is "%~dpnx0" 
    echo %%~f1 is "%~f1" 
    echo %%~dp0%%~1 is "%~dp0%~1" 

documentación cheque aquí de copia: https://technet.microsoft.com/en-us/library/bb490886.aspx

y también aquí documentación de los parámetros del lote: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

Cuestiones relacionadas