Pregunta ¿Cómo puedo copiar todos los archivos de varias carpetas en una carpeta en tiempo real?


Mi estructura de archivos se ve así

C:\photo1\2018-07-26\*.jpg
C:\photo1\2018-07-27\*.jpg
C:\photo1\2018-07-30\*.jpg

C:\photo2\2018-07-26\*.jpg
C:\photo2\2018-07-27\*.jpg
C:\photo2\2018-07-30\*.jpg

Los nuevos archivos se agregarán en la última carpeta de fechas. Intento copiar todos los archivos en una carpeta sin subcarpetas

C:\photo1\*\*.jpg -> C:\allphoto1\*.jpg
C:\photo2\*\*.jpg -> C:\allphoto2\*.jpg

y en tiempo real cuando se agrega un nuevo archivo. ¿Alguien sabe cómo hacer esto con un archivo por lotes u otro software?


0


origen


Una pista ;)raymond.cc/blog/3-portable-tools-monitor-files-folders-changes - Alex


Respuestas:


Puede usar el siguiente comando para ver si ayuda.

cd /d "C:\photo1"  
for /r %d in (*) do copy "%d" "C:\allphoto1"

cd /d "C:\photo2"  
for /r %d in (*) do copy "%d" "C:\allphoto2"

Esto copiará todos los archivos en el C: \ photo1, así como el archivos en las subcarpetas en C: \ photo1 a C: \ allphoto1

O puedes moverte, reemplazar, también.

cd /d "C:\photo1"  
for /r %d in (*) do *move* "%d" "C:\allphoto1"

Actualizar: Puedes usar lo siguiente test.bat archivo, y simplemente edite el test.bat y cambie la ruta como su requisito.

@echo off  
@cd /d c:\photo1  
@for /r %%d in (*) do move "%%d" "C:\allphoto1"  
@cd /d c:\photo2  
@for /r %%d in (*) do move "%%d" "C:\allphoto2"  
@pause

simplemente cree un nuevo archivo txt y escriba los comandos anteriores, y guárdelo como test.bat. Cuando tengas que moverlos, simplemente ejecútalo.

enter image description here --------------------------------------------

O puede usar este script de powershell.

[CmdletBinding()]  
param  
(  
[parameter(Mandatory=$true)]  
[string]$sourcepath,  
[parameter(Mandatory=$true)]  
[string]$destinition  
)  
Write-Verbose "copy from one path to another path"

Get-ChildItem $sourcepath | ForEach-Object -Process{  
if($_ -is [System.IO.FileInfo])  
{  
Copy-Item  -Literalpath ( $_.PSpath )  -Destination   $destinition -force  -Recurse   
}  
} 

Write-Verbose "scripts finished"

Este script necesita escribir el directorio cuando se está ejecutando, y puede agregar el directorio en el destino y sourcepath.


0



¿Puede ser en tiempo real? - AllenBooTung
Esto necesita ser ejecutado manualmente. Simplemente haz doble clic cuando quieras. - OOOO
Tengo un poco de conocimiento sobre el guión de PS. Y si puedo, modificaré esto más adelante. - OOOO
Difícil de leer sin usar el code formateo :( - Vlastimil Ovčáčík
@ VlastimilOvčáčík No soy bueno usando el código antes, lo cambiaré. - OOOO