Erstellen eines Ordners, der nach dem aktuellen Datum und der aktuellen Uhrzeit benannt ist

3

Ich versuche ein Powershell-Skript zu erstellen, das einen neuen Ordner mit dem aktuellen Datum (formatiert als JJJJ-MM-TT) als Name erstellt.

Folgendes habe ich bisher:

PS C:\Users\me\Desktop> powershell.exe -command "new-item ($(get-location)
+ (Get-Date).year + "-" + (Get-Date).month + "-" + (Get-Date).day) -type directo
ry"
Die Benennung "C:\Users\me\Desktop" wurde nicht als Name eines Cmdlet, ein
er Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überp
rüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern ent
halten), und wiederholen Sie den Vorgang.
Bei Zeile:1 Zeichen:35
+ new-item (C:\Users\me\Desktop <<<<  + (Get-Date).year +  - + (Get-Date).
month + - + (Get-Date).day) -type directory
+ CategoryInfo          : ObjectNotFound: (C:\Users\j.moore\Desktop:String
) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
lowerkey
quelle

Antworten:

3

Versuche dies:

 New-Item "$((get-date).toString('yyyy-MM-dd'))" -ItemType directory

oder:

md "$((get-date).toString('yyyy-MM-dd'))"

Erklärung von dieser Seite :

Mit $ () können Sie die Ausgabe eines Befehls in einer Zeichenfolge verwenden

Das () um get-date sagt wieder "Execute this first", damit wir die von get-date zurückgegebenen Methoden des DateTime-Objekts verwenden können

Die toString () -Methode eines DateTime-Objekts verwendet eine Formatierungszeichenfolge als Eingabe.

Siim K
quelle
Die Verwendung einer erweiterbaren Zeichenfolge mit einem Unterausdruck ist komplizierter als erforderlich.
Jay Bazuzi
Während (Get-Date).ToString(...)funktioniert, Get-Date -Format ...ist mehr idiomatische PowerShell.
Jay Bazuzi
0

Versuche dies:

mkdir (Get-Date -Format "yyyy-MM-dd")
Jay Bazuzi
quelle