varias subcarpetas mover copiar con carpetas archivos windows batch-file command-prompt xcopy .doc

subcarpetas - robocopy windows 10



archivo por lotes Copie archivos con ciertas extensiones de mĂșltiples directorios en un directorio (5)

Brandon, bajo y dulce. También flexible.

set dSource=C:/Main directory/sub directory set dTarget=D:/Documents set fType=*.doc for /f "delims=" %%f in (''dir /a-d /b /s "%dSource%/%fType%"'') do ( copy /V "%%f" "%dTarget%/" 2>nul )

Espero que esto ayude.

Agregaría algunas verificaciones después de la copia (usando ''||'') pero no estoy seguro de cómo reacciona "copy / v" cuando encuentra un error.

Es posible que desee probar esto:

copy /V "%%f" "%dTarget%/" 2>nul|| echo En error occured copying "%%F".&& exit /b 1

Como la línea de copia. Avísame si obtienes algo de él (en ninguna posición para probar un error de copia del cajero automático ..)

Soy un novato, así que tengan paciencia conmigo ...

Intento copiar todos los archivos .doc que he distribuido en varios subdirectorios de un directorio principal en otro directorio utilizando un archivo por lotes. filelist.txt obtener un filelist.txt de todos los archivos (hay cientos) fuera de estos directorios que quiero copiar usando:

"C:/Main directory/sub directory" dir /b /s *.doc > "C:/Main directory/sub directory/filelist.txt"

¿Qué script usaría para copiarlos en un directorio? ¿Puedo usar algún código que realmente filelist.txt esos nombres de archivo de filelist.txt y los copie?

Como referencia, miré la pregunta a continuación porque parecía que estaba haciendo lo que quería hacer, pero no funcionó para mí.

Usando xcopy para copiar archivos de varios directorios a un directorio

Además, realmente me gustaría entender este concepto, así que desglose el código para que me diga qué hace cada elemento, o al menos incluya un enlace que lo explique.


Cosas como estas son las razones por las que cambié a Powershell. Pruébalo, es divertido:

Get-ChildItem -Recurse -Include *.doc | % { Copy-Item $_.FullName -destination x:/destination }


En una solución de archivo por lotes

for /R c:/source %%f in (*.xml) do copy %%f x:/destination/

El código funciona como tal;

para cada archivo en el directorio c:/source y subdirectories /R que coincidan con el patrón (/*.xml) ponga el nombre del archivo en la variable %%f , luego para cada archivo do copie el archivo copy %%f al destino x://destination//

Acabo de probarlo aquí en mi computadora con Windows XP y funcionó como un regalo para mí. Pero lo escribí en el símbolo del sistema, así que usé la única versión del nombre de la variable %f , como se describe en la pregunta vinculada más arriba.


Simplemente use el comando XCOPY con la opción recursiva

xcopy c:/*.doc k:/mybackup /sy

/ s lo hará "recursivo"


también puedes usar vbscript

Set objFS = CreateObject("Scripting.FileSystemObject") strFolder = "c:/test" strDestination = "c:/tmp/" Set objFolder = objFS.GetFolder(strFolder) Go(objFolder) Sub Go(objDIR) If objDIR <> "/System Volume Information" Then For Each eFolder in objDIR.SubFolders Go eFolder Next For Each strFile In objDIR.Files strFileName = strFile.Name strExtension = objFS.GetExtensionName(strFile) If strExtension = "doc" Then objFS.CopyFile strFile , strDestination & strFileName End If Next End If End Sub

guardar como mycopy.vbs y en la línea de comandos

c:/test> cscript /nologo mycopy.vbs