Me gustaría poder escribir un script de PowerShell que tome una carpeta (o un conjunto de carpetas) y duplicarlas en la estructura de la carpeta (sin el archivos) podría crearse, donde podría crearse la estructura de archivos (sin las carpetas), o en la que podrían crearse las carpetas de archivos (todos o seleccionados) Y.Copie carpetas sin archivos, archivos sin carpetas o todo usando PowerShell
Example:
C:\ProdData has 3 subfolders in it
C:\ProdData\Fld1
C:\ProdData\Fld2
C:\ProdData\Fld3 - has 2 subfolders under it
C:\ProdData\Fld3\MyFolder1
C:\ProdData\Fld3\MyFolder2
Cada carpeta anterior tiene varios archivos en varios tamaños, de varias extensiones de archivos.
Me gustaría tener un script de PowerShell que implicaría una duplicación de la estructura de carpetas en otro lugar, y me da la opción de Estructura de carpetas Sólo, sólo archivos o archivos y carpetas a ser copiados.
En lo anterior, me gustaría ser capaz de copiar C: \ ProdData a otra carpeta, esencialmente, el cambio de nombre a ProdData TestData (es decir, C: \ ProdData copian en C: \ TestData), o para copiar toda la estructura de la carpeta.
C:\ProdData
en otra carpeta que es una subcarpeta de otra cosa: C:\TestArea\TestFolders\2012-04-01\TestData\ProdData\Fld1
, etc ...
Y elegir selectivamente para incluir carpetas, archivos o tanto.
La solución ideal sería (solo para carpetas) tomar la estructura de carpetas, exportarla/guardarla, leerla y crear esa misma estructura en otro lugar. Algunas soluciones que he encontrado dicen que copiaron solo la estructura de la carpeta, pero si existen datos, eso también se copia y no se puede excluir uno u otro. Tengo una solución parcial al requisito de sólo archivos que semi-conserva el camino, pero tomaría un archivo:
c:\ProdData\Fld1\MyFile.dat
y copiarlo en:
c:\TestData\yyyyMMdd_hhmmss_ProdData_Fld1_MyFile.dat
Pero eso no es algo que podría se decodifica fácilmente y sería imposible volver a integrar la estructura de origen. Agradecería cualquier idea sobre cómo lograr esto sin reinventar la rueda.
Gracias por la sugerencia. No tenía ni siquiera instalado Robocopy, y se adapta bastante bien a las necesidades. Lo que terminé haciendo por la estructura de un archivo fue conectar el Show-Tree a un archivo de texto. Eso logró otra parte de lo que estaba buscando. Ninguna cosa lo haría todo, pero 3 piezas relativamente sencillas juntas lograron lo que necesitaba. ¡Gracias por su ayuda! Para el –
aplanar uno, puede omitir la sección media y sólo tiene que utilizar la opción -File en Get-ChildItem como (y Copy-Item lugar de Robocopy): Get-ChildItem $ fuente -Recurse -File | Foreach-Object {Copy-Item $ _. FullName $ dest}. No es una gran diferencia sin embargo. – Brandon
@Brandon Buen punto. Siempre y cuando esté en Powershell 3, puede hacerlo (los parámetros '-File' y' -Directory' no existían hasta v3). – ajk