Articles

Les bases de PowerShell : Utiliser Test-Path pour vérifier l’existence d’un fichier avec des exemples

Posted on

Cmdlet Test-Path de PowerShell

S’il y a un problème pour trouver un fichier, ou pour vérifier un objet conteneur, alors faites appel à Test-Path de PowerShell ; il répondra par un ‘Vrai ou Faux’.

  • Exemple classique : PowerShell vérifie si un fichier existe
  • PowerShell Test-Path -IsValid
  • PowerShell Test-Path -Exclude
  • Un exemple de Test-Path pour vous faire réfléchir
  • Test-Path -PathType

Exemple classique : PowerShell vérifie si un fichier existe

Démarrez avec un script simple pour vérifier l’existence de votre fichier.

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

Note 1 : Le seul résultat que PowerShell peut retourner est un true ou un false. Cependant, Test-Path réclame une instruction ‘if’ pour agir sur la sortie, donc :-

Note 2 : Comme pour tous ces scripts, veuillez modifier mes exemples pour les adapter à votre environnement.

Guy Recommande : SolarWinds Wake-On-LAN Utility (OUTIL GRATUIT)

Encourager les ordinateurs à dormir lorsqu’ils ne sont pas utilisés est une excellente idée – jusqu’à ce que vous soyez loin de votre bureau et que vous ayez besoin d’un fichier sur cette machine endormie distante !

WOL a également des utilisations professionnelles, par exemple, réveiller les machines pour qu’elles puissent avoir des correctifs de mise à jour appliqués. Ma véritable raison de vous recommander de télécharger cet outil gratuit est que c’est tellement amusant d’envoyer ces  » paquets magiques « . Essayez WOL – c’est gratuit.

SolarWinds Wake-On-LAN Télécharger l’outil 100% GRATUIT

Test-Path Environmental Variables

En plus des emplacements de fichiers physiques, vous pouvez également employer Test-Path pour interroger le registre ou comme ici, les variables d’environnement.

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

Défi : lesquelles de ces variables sont réellement des variables d’environnement ?
Public, Private, Temp, Tump et Tmp

PowerShell Test-Path -IsValid

L’une des tâches sous-estimées de Test-Path est de valider que la partie chemin d’un script existe réellement.

PowerShell Test-Path -Exclude

Voici un problème concret, je voulais voir s’il y avait des fichiers qui ne sont pas des .gif, pnp, bmp ou .jpg, qui se sont mélangés à ma collection de photos. Hypothèse : les fichiers qui m’intéressent (nous intéressent) sont stockés dans H:\Sports\fun_pictures\

Note 3 : Vous devrez modifier radicalement le fichier ci-dessus si vous voulez qu’il fonctionne sur votre ordinateur. Changez les valeurs de $ImageFiles et modifiez également les extensions de fichiers -exclude. Voir plus sur PowerShell Else.

Guy Recommande : SolarWinds Engineer’s Toolset (ESSAI GRATUIT)

Ce Engineer’s Toolset fournit une console complète de 50 utilitaires pour le dépannage des problèmes informatiques. Guy dit que cela m’aide à surveiller ce qui se passe sur le réseau, et que chaque outil m’en apprend davantage sur le fonctionnement du système sous-jacent.

Il y a tellement de bons gadgets ; c’est comme avoir carte blanche dans un magasin de bonbons. Heureusement, les utilitaires sont affichés de manière logique : surveillance, découverte du réseau, diagnostic et outils Cisco. Essayez dès maintenant le SolarWinds Engineer’s Toolset dans le cadre d’un essai gratuit de 14 jours !

SolarWinds Engineer’s Toolset Télécharger Essai GRATUIT de 14 jours

Un exemple de chemin de test pour vous faire réfléchir

Note 4 : J’ai créé ce script délibérément. Il n’a aucun sens en termes pratiques. Veuillez ajuster la valeur de Exclude *.* à *.exe ou *.dll. Comme vous pouvez le voir, les caractères génériques sont autorisés dans le chemin d’accès et dans les extensions.

Note 5 : Ici, j’ai explicitement utilisé le paramètre -Path, cependant, toute valeur après Test-Path est supposée être l’emplacement, donc -Path est facultatif.

Note 6 : Je trouve souvent que l’expérimentation de Get-ChildItem aux côtés de Test-Path révèle les forces et les faiblesses de ces deux cmdlets.

Recherche du cmdlet PowerShell Test-Path

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

Note 7 : En interrogeant Test-Path avec Get-Help, nous pouvons dénicher des paramètres utiles tels que -IsValid pour vérifier le chemin. Il y a aussi -Include et -exclude, qui affinent le contenu de votre recherche. C’est grâce à Get-Help que j’ai découvert -PathType.

Test-Path -PathType

Le principal objectif du paramètre -PathType est de vérifier si l’objet est un fichier ou un dossier. Cependant, il peut également être utilisé dans le registre pour vérifier les clés ou les données.

Trap : HKLM : a besoin de ce deux-points. Si vous exportez simplement des zones du registre, puis copiez comme:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\\CurrentVersion\Winlogon
il y a des problèmes.

HKEY_LOCAL_MACHINE est bien, l’espace entre Windows et NT n’est pas un problème, mais l’absence de deux points est un obstacle, cela devrait être :
HKEY_LOCAL_MACHINE:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Guy Recommande : Network Performance Monitor (ESSAI GRATUIT)

SolarWinds Network Performance Monitor (NPM) vous aidera à découvrir ce qui se passe sur votre réseau. Cet utilitaire vous guidera également dans le dépannage ; le tableau de bord indiquera si la cause première est un lien brisé, un équipement défectueux ou une surcharge de ressources.

Ce que je préfère, c’est la façon dont NPM suggère des solutions aux problèmes de réseau. Son a également la capacité de surveiller la santé des machines virtuelles VMware individuelles. Si vous êtes intéressé par le dépannage, et la création de cartes réseau, alors je vous recommande d’essayer NPM sur un essai gratuit de 30 jours.

SolarWinds Network Performance Monitor Télécharger Essai GRATUIT de 30 jours

Le reste de la famille Path

Voici une technique simple pour trouver plus de cmdlets. Get-Command -Noun donne souvent des résultats intéressants, par exemple Resolve-Path.

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

Exemple de Join-Path

Voici un beau script pour trouver quel lecteur héberge un dossier particulier.

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

Note 8 : Veuillez changer « Stuff » par le nom du dossier que vous recherchez.
Par exemple : $Dossier = « Program Files »

Voir plus de tâches réelles pour PowerShell »

Résumé du cmdlet PowerShell Test-Path

La tâche classique pour PowerShell Test-Path est de vérifier qu’un fichier existe. Cependant, vous pouvez étendre son utilité en testant les chemins du registre, ou pour rechercher des fichiers avec une extension particulière.

Voir plus de tutoriels Microsoft PowerShell :

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

– Script de connexion PowerShell – PowerShell add printer – PowerShell Schedule Task – Free CSVDE Tool

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

Veuillez m’envoyer un courriel si vous avez de meilleurs exemples de script. Veuillez également signaler toute erreur factuelle, grammaticale ou tout lien brisé, je me ferai un plaisir de corriger la faute.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *