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