Was machen diese Powershellbefehle?

2 Antworten

$Results += (Get-ChildItem "$Drive\" -File -Filter $Filter -ErrorAction SilentlyContinue).FullName 

....durchsucht das Wurzelverzeichnis des in der Variable $Drive übergebenen Laufwerks. (bei C: ist das "C:\ ") -nur nach Dateien mit der Filtermaske ManualToHelpCmd.exe . .FullName beschränkt den Rückgabewert auf die Property "FullName" . Das eventuelle Ergebnis wird der Arrayvariable $Result hinzugefügt (oder auch Nichts)

Lange Pipelines sind immer schwer zu lesen und kommentieren, darum schreibe ich sie mal über mehrere Zeilen...

$Results += (
  Get-ChildItem "c:\" -Directory | #ermittelt nur die Ordner  im Rootverzeichnis  des Laufwerks
    Where-Object Name -notin @('windows','video') | # entferne eventuell gefundene Ordner mit mit den Namen 'Windows' und 'Video' aus  der Pipeline
    Get-ChildItem -File -Filter 'ManualToHelpCmd.exe' -Recurse -ErrorAction SilentlyContinue  #durchsuche  die in der Pipeline verbliebenen Ordner  rekursiv nach dateien mit der Filtermaske 'ManualToHelpCmd.exe'
).FullName

...und ebenfalls zu $Results hinzufügen

das kann man auch in der Powershell dokumentation nachlesen

wenn Du mal wieder nicht genau weißt was Befehl/pipelines alles zurückgeben führe sie einzeln aus :

Bild zum Beitrag

auch Begriffe wie .FullName schüttle ich mir nicht aus den Ärmeln.

wenn due wissen möchtest, welche Eigenschaften ein beliebiges Dateiobjekt verfügt.

genügt :

gci -file| #dateien im aktuellen verzeichnis
 select -first 1| #das erste beste
 Format-List *  #alle ermittelten Eigenschaften auflisten

und sowas wird ausgegeben:

Bild zum Beitrag


Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
 - (Script, PowerShell)  - (Script, PowerShell)

Einfach erklärt durchsuchen diese zwei Zeilen alle angegebenen Laufwerke nach einer bestimmten Datei. Die erste Zeile sucht nur im Root-Verzeichnis der Laufwerke, während die zweite Zeile rekursiv alle Unterverzeichnisse durchsucht, außer den ausgeschlossenen Ordnern. Die Ergebnisse werden in der $Results-Variablen gesammelt.

Woher ich das weiß:Berufserfahrung – Softwareentwickler C#