Articles

PowerShell-Grundlagen: Verwenden von Test-Path zum Überprüfen, ob eine Datei vorhanden ist, mit Beispielen

Posted on

PowerShell Test-Path Cmdlet

Wenn es ein Problem gibt, eine Datei zu finden oder nach einem Container-Objekt zu suchen, rufen Sie PowerShell Test-Path auf; es antwortet mit ‚True oder False‘.

  • Klassisches Beispiel: PowerShell prüft, ob eine Datei vorhanden ist
  • PowerShell Test-Path -IsValid
  • PowerShell Test-Path -Exclude
  • Ein Test-Path-Beispiel zum Nachdenken
  • Test-Path -PathType

Klassisches Beispiel: PowerShell prüft, ob eine Datei existiert

Starten Sie mit einem einfachen Skript, um die Existenz einer Datei zu prüfen.

# PowerShell Check If File Exists$WantFile = "C:\Windows\explorer.exe"Test-Path $WantFile

Hinweis 1: Das einzige Ergebnis, das PowerShell zurückgeben kann, ist ein true oder ein false. Test-Path schreit jedoch nach einer ‚if‘-Anweisung, um auf die Ausgabe zu reagieren, also:-

Hinweis 2: Wie bei allen diesen Skripten sollten Sie meine Beispiele an Ihre Umgebung anpassen.

Guy Recommends: SolarWinds Wake-On-LAN Utility (KOSTENLOSES TOOL)

Rechner in den Schlaf zu versetzen, wenn sie nicht gebraucht werden, ist eine tolle Idee – bis Sie nicht an Ihrem Schreibtisch sind und eine Datei auf dem entfernten, schlafenden Rechner benötigen!

WOL hat auch geschäftliche Zwecke, zum Beispiel das Wecken von Rechnern, damit diese mit Update-Patches versorgt werden können. Der eigentliche Grund, warum ich Ihnen den Download dieses kostenlosen Tools empfehle, ist, dass es so viel Spaß macht, diese „Magic Packets“ zu versenden. Probieren Sie WOL aus – es ist kostenlos.

SolarWinds Wake-On-LAN Download 100% FREE Tool

Test-Pfad Umgebungsvariablen

Zusätzlich zu den physischen Dateispeicherorten können Sie mit Test-Pfad auch die Registry oder wie hier Umgebungsvariablen abfragen.

# PowerShell Test-Path for Environmental VariablesTest-Path env:\PathExt

Herausforderung: Welche davon sind wirklich Umgebungsvariablen?
Public, Private, Temp, Tump und Tmp

PowerShell Test-Path -IsValid

Eine der unterschätzten Aufgaben für Test-Path ist es, zu überprüfen, ob der Pfadteil eines Skripts wirklich existiert.

PowerShell Test-Path -Exclude

Hier ist ein Problem aus der Praxis, ich wollte sehen, ob es Dateien gibt, die nicht .gif, pnp, bmp oder .jpg sind, die sich in meine Fotosammlung verirrt haben. Annahme: die Dateien, an denen ich (wir) interessiert bin, sind in H:\Sports\fun_pictures\

Anmerkung 3: Sie müssen die obige Datei radikal bearbeiten, wenn sie auf Ihrem Computer funktionieren soll. Ändern Sie die Werte für $ImageFiles und passen Sie auch die -exclude-Dateierweiterungen an. Sehen Sie mehr auf PowerShell Else.

Guy Recommends: SolarWinds Engineer’s Toolset (FREE TRIAL)

Dieses Engineer’s Toolset bietet eine umfassende Konsole mit 50 Dienstprogrammen für die Fehlerbehebung bei Computerproblemen. Guy sagt, es hilft mir zu überwachen, was im Netzwerk passiert, und jedes Tool lehrt mich mehr darüber, wie das zugrunde liegende System funktioniert.

Es gibt so viele gute Gadgets; es ist, als hätte man freie Hand in einem Süßwarenladen. Zum Glück sind die Dienstprogramme logisch geordnet: Überwachung, Netzwerkerkennung, Diagnose und Cisco-Tools. Testen Sie das SolarWinds Engineer’s Toolset jetzt 14 Tage lang kostenlos!

SolarWinds Engineer’s Toolset Download 14 Tage lang KOSTENLOS testen

Ein Testpfad-Beispiel, das zum Nachdenken anregt

Hinweis 4: Ich habe dieses Skript absichtlich erstellt. Es macht in der Praxis keinen Sinn. Bitte passen Sie den Wert von Exclude *.* auf *.exe oder *.dll an. Wie Sie sehen, sind Platzhalter im Pfad und in den Erweiterungen erlaubt.

Hinweis 5: Hier habe ich explizit den Parameter -Path verwendet, allerdings wird jeder Wert nach Test-Path als Speicherort angenommen, daher ist -Path optional.

Hinweis 6: Ich stelle oft fest, dass das Experimentieren mit Get-ChildItem neben Test-Path die Stärken und Schwächen dieser beiden Cmdlets offenbart.

Das PowerShell-Cmdlet Test-Path untersuchen

# Find out more about PowerShell Test-Path cmdletClear-HostGet-Help Test-Path -full

Hinweis 7: Durch die Abfrage von Test-Path mit Get-Help können wir nützliche Parameter wie -IsValid zum Überprüfen des Pfads ausgraben. Außerdem gibt es -Include und -exclude, die den Inhalt der Suche verfeinern. Dank Get-Help habe ich -PathType entdeckt.

Test-Path -PathType

Der Hauptzweck des Parameters -PathType ist es, zu prüfen, ob das Objekt eine Datei oder ein Ordner ist. Er kann aber auch in der Registry verwendet werden, um nach Schlüsseln oder Daten zu suchen.

Trap: HKLM: braucht diesen Doppelpunkt. Wenn Sie einfach Bereiche der Registry exportieren und dann als:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
kopieren, gibt es Probleme.

HKEY_LOCAL_MACHINE ist in Ordnung, das Leerzeichen zwischen Windows und NT ist kein Problem, aber der fehlende Doppelpunkt ist ein Show-Stopper, es sollte sein:
HKEY_LOCAL_MACHINE:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Guy Recommends: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) hilft Ihnen herauszufinden, was in Ihrem Netzwerk passiert. Das Dashboard zeigt Ihnen an, ob die Ursache eine defekte Verbindung, fehlerhafte Geräte oder eine Überlastung der Ressourcen ist.

Am besten gefällt mir, dass NPM Lösungen für Netzwerkprobleme vorschlägt. Es bietet auch die Möglichkeit, den Zustand einzelner virtueller VMware-Maschinen zu überwachen. Wenn Sie sich für die Fehlersuche und das Erstellen von Netzwerkkarten interessieren, dann empfehle ich Ihnen, NPM mit einer 30-tägigen kostenlosen Testversion auszuprobieren.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Der Rest der Path-Familie

Hier ist eine einfache Technik, um weitere Cmdlets zu finden. Get-Command -Noun liefert oft interessante Ergebnisse, zum Beispiel Resolve-Path.

# PowerShell Path Cmdlet ResearchClear-HostGet-Command -Noun Path
Convert-Path
Join-Path
Resolve-Path
Split-Path
Test-Path

Join-Path Beispiel

Hier ist ein schönes Skript, um herauszufinden, auf welchem Laufwerk ein bestimmter Ordner liegt.

Clear-Host$Folder = "Stuff"Get-PSDrive | Where-Object {$_.root -match ":\\" -and (Test-Path $(Join-Path $_.root $Folder))}

Hinweis 8: Bitte ändern Sie „Stuff“ auf den Namen des gesuchten Ordners.
Zum Beispiel: $Ordner = „Programme“

Weitere Aufgaben aus der Praxis für PowerShell“

Zusammenfassung des PowerShell Test-Path Cmdlet

Die klassische Aufgabe für PowerShell Test-Path ist die Überprüfung, ob eine Datei existiert. Sie können seine Nützlichkeit jedoch erweitern, indem Sie Registrierungspfade testen oder nach Dateien mit einer bestimmten Erweiterung suchen.

Weitere Microsoft PowerShell-Tutorials anzeigen:

– PowerShell Home – Test-ServerHealth – Test-SystemHealth – Test-Connection – Test-Path

– PowerShell Logon Script – PowerShell add printer – PowerShell Schedule Task – Free CSVDE Tool

– Map Network Drive – Exchange 2010 PowerShell Cmdlets – Exchange 2010 Performance Monitor

Bitte mailen Sie mir, wenn Sie bessere Skriptbeispiele haben. Bitte melden Sie auch sachliche Fehler, grammatikalische Fehler oder defekte Links, ich werde den Fehler gerne korrigieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.