Estoy escribiendo un script de PowerShell para crear varios directorios si no existen.
El sistema de archivos se parece a esto
D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
- Cada carpeta de proyecto tiene múltiples revisiones.
- Cada carpeta de revisión necesita una carpeta de Informes.
- Algunas de las carpetas de "revisiones" ya contienen una carpeta de Informes; Sin embargo, la mayoría no.
Necesito escribir un script que se ejecute diariamente para crear estas carpetas para cada directorio.
Puedo escribir el script para crear una carpeta, pero crear varias carpetas es problemático.
Respuestas:
Prueba el
-Force
parámetro:Puede usar
Test-Path -PathType Container
para verificar primero.Consulte el artículo de ayuda de MSDN New-Item para obtener más detalles.
fuente
Test-Path
comprueba si la ruta existe. Cuando no lo haga, creará un nuevo directorio.fuente
test-path
).El siguiente fragmento de código le ayuda a crear una ruta completa.
La función anterior divide la ruta que pasó a la función y verificará cada carpeta si existe o no. Si no existe, creará la carpeta correspondiente hasta que se cree la carpeta de destino / final.
Para llamar a la función, use la siguiente declaración:
fuente
Tuve exactamente el mismo problema. Puedes usar algo como esto:
fuente
Cuando especifique el
-Force
indicador, PowerShell no se quejará si la carpeta ya existe.Un trazador de líneas:
Por cierto, para programar la tarea, consulte este enlace: Programación de trabajos en segundo plano .
fuente
Utilizar:
La primera línea crea una variable llamada
$path
y le asigna el valor de cadena de "C: \ temp \"La segunda línea es una
If
afirmación que se basa en el Test-Path cmdlet para comprobar si la variable$path
no no existe. Lo no existente se califica utilizando el!
símbolo.Tercera línea: Si es la ruta almacenada en la cadena anterior no se encuentra, se ejecutará el código entre las llaves.
md
es la versión corta de escribir:New-Item -ItemType Directory -Path $path
Nota: No he probado usando el
-Force
parámetro con el siguiente para ver si hay un comportamiento no deseado si la ruta ya existe.fuente
md "C:\first\second\third
créelos todos.Hay tres formas en que sé crear un directorio usando PowerShell:
fuente
Según su situación, parece que necesita crear una carpeta "Revisión #" una vez al día con una carpeta "Informes" allí. Si ese es el caso, solo necesita saber cuál es el próximo número de revisión. Escriba una función que obtenga el siguiente número de revisión, Get-NextRevisionNumber. O podrías hacer algo como esto:
Instalación de PowerShell 3.0 .
fuente
Quería permitir que los usuarios crearan fácilmente un perfil predeterminado para PowerShell para anular algunas configuraciones, y terminé con la siguiente línea (varias afirmaciones, sí, pero se pueden pegar en PowerShell y ejecutar de una vez, que era el objetivo principal ):
Para facilitar la lectura, así es como lo haría en un archivo .ps1:
fuente
Aquí hay uno simple que funcionó para mí. Comprueba si la ruta existe, y si no existe, creará no solo la ruta raíz, sino también todos los subdirectorios:
fuente