Windows Powershell Dateinamen auslesen und als variable verwenden?
Hii,
also ich würde gerne in einem beliebigen Ordner alle Dateien löschen, die die Zahlen 1-5 im Dateinamen haben.
Ich möchte diesen gerne auslesen und dann als Variable in einer IF-Anweisung verwenden.
Ich war jetzt schon in einigen Foren unterwegs, hab aber nicht so wirklich das richtige gefunden.
Danke schonmal im Voraus!
1 Antwort
Powershel ist sooo bequem zu handhaben, wer will da noch für solchen Pippifax mit if rumfrickeln?
Der ganz Billige:
$var=gci *1*.* , *2*.* , *3*.* , *4*.* , *5*.* #suche im Ordner Dateien mit 1..5 im Namen
#die Variable mal anzegen
write-host -f green gefundene Dateien:
($var).name
'';write-host -f yellow gefundene Dateien ,nur Name:
($var).Basename
'';write-host -f red gefundene Dateien ,voller Pfad:
($var).Fullname
#mit der variable was machen
$var|%{write-host -f magenta ich mache was mit: -NoNewline ; write-host -f 15 $_.Name }
mit regex lässt es sich viel gezielter arbeiten:
#RegEX
$Pattern='.*[1-5].*' #dies bedeutet: beliebig oft oder nicht jedes beliebige Zeichnen, eine Ziffer 1-5 , beliebig oft oder nicht jedes beliebige Zeichnen. (zb. blub5bla oder 2015mick etc
# hole Dateinamen | wenn Name(ohne Endung) mit dem durch das RegeEX vorgegebene Muster übereistimmt | mache für jedes gefilterte Ergebnis was Dir beliebt
gci -af | ?{$_.BaseName -match $Pattern } | % {
write-host -n -f magenta 'ich mache was mir beliebt mit: ' ;
write-host -f 15 $_.Name ;
}
...Und im Prinzip genau das Vorgegebene
alle Dateien , die die Zahlen 1-5 im Dateinamen haben.
ansonsten musst Du dich präziser ausdrücken. (ggf ein paar Beispiele).
Eine kurze Anleitung inclusive Tester .
Ich könnte da einen guten Regexgenerator empfehlen 🤣🤣🤣:
die Alternative wäre eine if -Rödelei ohne gleichen:
$var= gci -af ;
foreach($file in $var) {
for ($i=1; $i -le 5; $i++) {
if ($file.BaseName -like "*$i*") {
...ich habe es Aufgeben etwas sinnvolles daraus zu machen...
..Mülltonne.. sowas tut man nicht mit Powershell
}
}
}
Glossar:
- https://www.windowspro.de/script/regulaere-ausdruecke-regex-powershell-verwenden
- https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-gt-contains-match
- https://www.windowspro.de/script/schleifen-powershell-foreach-while-do-until-continue-break
- https://www.windowspro.de/script/dateien-anzeigen-powershell-get-childitem