PowerShell (Dateien suchen)

FranckM

Well-known member
Kennt ihr PowerShell? Es handelt sich um eine Skriptsprache von Microsoft die inzwischen auch für Mac und Linux existiert (Open Source... Ob vollständig?).

Infos für Mac :
Infos für Linux :

Warum rede ich über eine Programmiersprache in einen Fotoforum? Mit PowerShell (PS) kann man, zwischen 1000 andere sache, in FileSystem (Festplatten, Speicherkarten, USB-Stick usw, suchen. Diese Skriptsprache ist SEHR Leistungfähig... und ist auf jeder Windows-PC vorinstalliert.

Vor kurz brauchte ich eine Liste von alle Dateien (egal ob JPG, RAW, Tif, usw.) wo der Begriff 'garten' vorkommt (Stadtgarten, Irrgarten, garten usw.).

Hier ist meine Lösung:
PS starten: In der Windows Suchfeld (Die Lupe unten links) powershell und enter eingeben. Ein Kommando-Fenster geht auf (wie der alter 'DOS-Box).

Die folgende drei Zeilen abtippen (immer mit Enter abschliessen).

$start = "D:\_BILD_\Photos\_Wettbewerb" <== ab wo es gesucht wird
$pat = "garten" <== was gesucht wird (immer klein Schrifft)
dir $start -r | ?{$_.Name.tolower().Contains($pat)} | select name, Directory, LastWriteTime, length

Nach die dritte Zeile wird, bei mir, folgendes angezeigt:

FullName LastWriteTime length
-------- ------------- ------
D:\_BILD_\Photos\_Fotoclub\2019\2019_11_28_Moehl\BEA_RX10V4\DSC00842_Irrgarten.afphoto 23.12.2019 00:54:26 22467691
D:\_BILD_\Photos\_Fotoclub\2019\2019_11_28_Moehl\BEA_RX10V4\Irrgarten.jpg 23.12.2019 00:55:13 1099339
D:\_BILD_\Photos\_Fotoclub\2021\2021_07_01_Fotos_zeigen\DSC06028_Gartenbetreuer.jpg 27.06.2021 16:29:36 232227
D:\_BILD_\Photos\_Fotoclub\2021\2021_07_01_Fotos_zeigen\DSC06663_GartenHag.jpg 27.06.2021 17:27:46 748683
D:\_BILD_\Photos\_Fotoclub\2021\Fruehling_2021\Gartenhag.jpg 13.05.2019 21:56:46 420729
D:\_BILD_\Photos\_Fotoclub\2022\2022_01_27_Fotos_zeigen\DSC06663_GartenHag.jpg 26.01.2022 22:19:35 8831660
.
.
.
D:\_BILD_\Photos\_Fotoclub\Expo\Gartenhag.jpg 26.07.2019 17:56:10 5993846
D:\_BILD_\Photos\_Fotoclub\Expo\Orig\IMG_2080_Gartenhag.afphoto 13.05.2019 21:55:14 8439207
D:\_BILD_\Photos\_Wettbewerb\ALLE_SOURCES\DSC01039_StadtGarten.afphoto 26.11.2021 18:25:04 382951054


usw.

Wenn jemand, das Ergebnis lieber in ein Windows-Fenster sehen will.... Muss einfach | Out-GridView am Zeilenende anfügen

Und es kommt so... :
1660741654616.png

Das Ergebnis kann auch in eine Datei geschrieben werden, einfach ' | out-file c:\daten\list.txt ' <== Die Pfad-Dateiname ist selbsverständlich frei wählbar, am Zeilenende anfügen

So es reicht wahrscheinlich für heute :) Wenn Fragen?.. bitte fragen
Liebe Grüsse
Franck
 
Zuletzt bearbeitet:
Hallo Franck,
danke für den Tipp!
Ich habe noch eine Frage: muss das gesuchte Wort im Dateinamen enthalten sein oder geht es auch, wenn es in den Schlagworten enthalten ist?
 
Es ist eine Suche auf Dateisystem-Ebene. Über die Art von Datei weiss PS gar nichts, nur die Dateiname ist relevant
 
Danke Franck, guter Tipp!

Auch elegant:
Die 3 Zeilen in eine Text-Datei "suchen.ps1" kopieren, rechte Maustaste auf Datei, "Mit Powershell ausführen" wählen.
Wird in Zeile 4 "pause" geschrieben, bleibt das Ergebnisfenster offen.

Gruß Ralf
 
Hallo Ralf
Per default (also standard) können PS-Skripte NICHT ausgeführt werden. Die PS 'Execution Policy' ist auf 'restricted' gesetzt und lässt die Skriptausführung nicht zu! Um dies zu ändern muss PS als Admin gestartet werden und dann der Kommando 'set-executionpolicy remotesigned' ausgeführt werden.

Ich bezweifle sehr dass, die execution policy allgemein, auf home Computer, auf remotesigned gesetzt sei!

Daher die 'manuelle' Variante
 
Zuletzt bearbeitet:

Oben