web-dev-qa-db-fra.com

Créer un dossier avec la date actuelle comme nom dans PowerShell

J'écris un script PowerShell. Je voudrais savoir comment créer un dossier avec la date actuelle comme nom. Le nom du dossier doit être "aaaa-MM-jj" (selon les chaînes de format personnalisé .NET).

Je sais que pour créer un dossier, je dois utiliser cette commande:

New-Item -ItemType directory -Path "some path"

Une solution possible pourrait être (si je veux créer le dossier dans le même répertoire que le script est:

$date = Get-Date
$date = $date.ToString("yyyy-MM-dd")
New-Item -ItemType directory -Path ".\$date"

Existe-t-il un moyen de chaîner les commandes, donc je n'ai pas besoin de créer la variable?

11
Santhos

Oui.

New-Item -ItemType Directory -Path ".\$((Get-Date).ToShortDateString())"

ou comme suggéré par alroc afin d'obtenir le même formatage, peu importe la culture.

New-Item -ItemType Directory -Path ".\$((Get-Date).ToString('yyyy-MM-dd'))"
22
notjustme

N'utilisez pas ToShortDateString() comme l'a écrit @notjustme; sa mise en forme dépend des paramètres régionaux et de vos paramètres de format de date dans le panneau de configuration régional et linguistique. Par exemple, sur mon PC en ce moment, cela produirait le nom de répertoire suivant:

C:\Users\me\09\18\2014

Définissez explicitement le format de la chaîne de date à la place.

New-Item -ItemType Directory -Path ".\$((Get-Date).ToString('yyyy-MM-dd'))"
12
alroc

Plus court est

$date = get-date -Format yyyy-mm-dd

1
ps4sure