Esta es una pregunta estúpida, pero no sé por qué no funciona.
Estoy tratando de copiar los archivos de la carpeta A a la carpeta B de forma recursiva. Yo estoy haciendo esto:
Copy-Item -Path "C:\FolderA\" -Destination "C:\FolderB\" -recurse -Force -Verbose
Funciona muy bien, no hay problema.
Excepto que el resultado en FolderB es este:
C:\FolderB\FolderA\file.txt
Mientras que quiero que sea:
C:\FolderB\file.txt
¿Qué estúpido obvio me estoy perdiendo?
powershell
CleverPatrick
fuente
fuente
Respuestas:
Su comando le dice a PowerShell que copie la carpeta en sí, con todo su contenido, en la carpeta de destino. Para copiar solo el contenido de la carpeta original, cambie su ruta de la siguiente manera:
Observe el asterisco (*) después del nombre de la carpeta. Esto copiará el contenido (incluidas las subcarpetas) de la carpeta, pero no la carpeta en sí a la carpeta de destino.
Usar el cmdlet Copiar elemento
fuente
md "C:\FolderB"
antesCopy-Item
parece evitar este problema.Copy-Item
que reproducirá la estructura de la carpeta, pero un nivel hacia abajo (por ejemplo,C:\FolderA\B\C
se copia enC:\FolderB\C
lugar deC:\FolderB\B\C
) y también puede fallar cuando existen varias subcarpetas. Asegúrese siempre de que la carpeta de destino existe antes de llamar a Copy-Item. Esto huele a un error (no puedo ver ninguna razón por la cual este comportamiento inconsistente sería deseable).Puede usar -File -Recurse para copiar solo archivos de forma recursiva:
Copiar elemento -Path "C: \ Source" -Destination "C: \ Dest" -File -recurse -Force -Verbose
O use -Directory -Recurse para copiar solo la estructura de la carpeta vacía :
Copy-Item -Path "C: \ Source" -Destination "C: \ Dest" -Directory -recurse -Force -Verbose
Saludos cordiales,
Paul Pedroza
fuente
También funcionaría
fuente