Tenía archivos en una sola carpeta en Windows 7 que quería renombrar y copiar a carpetas inexistentes.
he utilizado la siguiente secuencia de comandos PowerShell, que define una función Copy-New-Item
como un contenedor para el Test-Item
, New-Item
y Copy-Item
cmdlets:
function Copy-New-Item {
$SourceFilePath = $args[0]
$DestinationFilePath = $args[1]
If (-not (Test-Path $DestinationFilePath)) {
New-Item -ItemType File -Path $DestinationFilePath -Force
}
Copy-Item -Path $SourceFilePath -Destination $DestinationFilePath
}
Copy-New-Item schema_mml3_mathml3_rnc schema\mml3\mathml3.rnc
# More of the same...
Copy-New-Item schema_svg11_svg_animation_rnc schema\svg11\svg-animation.rnc
# More of the same...
Copy-New-Item schema_html5_assertions_sch schema\html5\assertions.sch
# More of the same...
(Tenga en cuenta que, en este caso, los nombres de archivo de origen no tienen extensión de archivo.)
Si la ruta del archivo de destino no existe, la función crea un archivo vacío en esa ruta, forzando la creación de cualquier directorio inexistente en la ruta del archivo. (Si Copy-Item
puede hacer todo eso por sí mismo, no pude ver cómo hacerlo desde el documentation.)
¡Muchas gracias! –
Gracias Shay. El método táctil es realmente útil, no es necesario recurrir a las carpetas de forma recursiva. – heedfull
Interesante, el "toque" crea el directorio y el archivo, y el archivo es un archivo de una línea ... si abre el archivo en el bloc de notas (no importa cuál sea la extensión) ... el archivo tiene el ~ nombre original nombre completo ... como la línea 1 del archivo (¿texto?). Luego, el elemento de copiado está muy contento de que todas las carpetas existan correctamente. ¡GRACIAS! He expandido su respuesta para que sea la respuesta a mi pregunta aquí: http: // stackoverflow.com/questions/42818014/powershell-copy-files-with-a-blacklist-exclude-and-a-whitelist-include/42819089 # 42819089 – granadaCoder