Comme tout autre shell, PowerShell est un puissant langage de coquille et de script développé par Microsoft. Conçu à l'origine pour Windows, PowerShell est désormais disponible pour toutes les principales plateformes. À partir de PowerShell 6, c'est devenu une application libre et open source.
Semblable à tout autre script de shell, nous pouvons utiliser PowerShell pour automatiser de la base de base à des trucs avancés. Dans ce guide, consultez comment utiliser PowerShell pour supprimer un fichier s'il existe sur Linux.
Vérification si un fichier existe
Semblable à d'autres obus, PowerShell est livré avec son propre ensemble de commandes pour effectuer diverses tâches, appelées applets de commande. Pour tester une certaine déclaration, dans Bash, nous utiliserions la déclaration de test bash qui vérifie si un certain argument est vrai ou faux. L'énoncé de test est un mécanisme à usage général qui peut calculer une grande variété de commandes possibles.
Dans le cas de PowerShell, cependant, il existe des applets de vente spécifiques pour une tâche spécifique. Ici, nous aurons besoin d'un chemin de test pour vérifier si le fichier donné existe à l'emplacement défini.
Voici une simple démonstration du chemin de test en action.
$ Test-Path -Path
Par défaut, Test-Path vérifiera si l'élément spécifié existe dans l'emplacement décrit. S'il existe, il renvoie la valeur booléenne «vraie». Sinon, il renvoie «faux».
Suppression d'un fichier dans PowerShell
Dans Linux, nous utiliserions la commande RM pour supprimer un fichier ou un répertoire. Dans le cas de PowerShell, il utilise le cmdlet retire-item.
Consultez la documentation Microsoft sur Suppor-Item.
Par exemple, pour supprimer un fichier spécifique, exécutez la commande suivante.
$ Enlèvement
Pour supprimer un répertoire, nous avons besoin d'une option supplémentaire «-recurse».
$ Enlèvement-Reprocher
Suppression du (s) fichier (s) si existe
Maintenant, nous pouvons combiner les deux méthodes ensemble et faire un script simple qui supprimera un fichier s'il existe dans l'emplacement cible.
Tout d'abord, attribuez une variable qui maintiendra la valeur du chemin de fichier.
$ $ Filelocation = ""
Ensuite, utilisez le chemin de test pour vérifier si le fichier existe à l'emplacement.
$ Test-Path $ filelocation
Selon la valeur de retour du chemin de test, nous pouvons prendre une décision de supprimer le fichier cible. Nous pouvons utiliser la déclaration PowerShell If-Else pour déterminer l'action.
if (test-Path $ filename = true)
Nom de fichier enlève
$
Ajoutons des messages supplémentaires pour chaque résultat possible.
if (test-Path $ filelocation)
Enlever un item $ filelocation
Écriture-host "$ filelocation est supprimé"
autre
Écriture-host "$ filelocation n'existe pas"
Implémentation dans un script PowerShell
Il est temps de mettre tous les codes dans un script PowerShell approprié. Semblable aux scripts bash, nous pouvons utiliser des scripts PowerShell pour automatiser diverses tâches en utilisant des applets et commandes PowerShell. Sur Linux, les scripts PowerShell et Bash partagent des similitudes structurelles.
Tout d'abord, nous avons besoin de l'emplacement de l'emplacement exécutable PowerShell. C'est important car cela fera partie du shebang. Exécutez la commande suivante.
$ qui PowerShell
Nous pouvons maintenant rassembler toutes ces pièces dans un seul script PowerShell. Un script PowerShell est livré avec l'extension de fichier PS1.
$ nano delete-if-exist.PS1
Maintenant, entrez le code que nous avons développé jusqu'à présent.
$ Filelocation = ""
if (test-Path $ filelocation)
Enlever un item $ filelocation
Écriture-host "$ filelocation est supprimé"
autre
Écriture-host "$ filelocation n'existe pas"
Enregistrez le fichier et fermez l'éditeur. Marquez le fichier en tant qu'exécutable.
$ chmod + x delete-if-exist.PS1
Enfin, exécutez le script.
$ ./ delete-if-exist.PS1
Situations spéciales
Suppression de fichiers en lecture seule
Le commandement de suppression ne peut pas supprimer les fichiers inexistants ou en lecture seule. Dans une telle situation, nous pouvons modifier la commande de supprimer pour supprimer, quelle que soit l'autorisation de fichier. Le drapeau «-verbose» imprimera la sortie étape par étape pour un débogage plus facile.
$ Retire-item -verbose -force $ filelocation
Mettons-le dans le script.
$ Filelocation = ""
if (test-Path $ filelocation)
Retirer-item -verbose -force $ filelocation
Écriture-host "$ filelocation est supprimé"
autre
Écriture-host "$ filelocation n'existe pas"
Pensée finale
Ce guide présente comment vérifier l'existence d'un fichier et basé sur le résultat, comment le supprimer à l'aide de CMDlet de suppression. Si le fichier est en lecture seule ou à l'autorisation refusée, nous pouvons utiliser le paramètre «-force» pour le supprimer avec force. Enfin, nous avons implémenté l'intégralité du script.
C'est un moyen très simple mais efficace de supprimer un fichier / répertoire de choix. Cependant, comme démontré, cette méthode globale est capable de supprimer un seul élément. Il est possible d'obtenir la liste des fichiers à partir d'un répertoire et d'utiliser une boucle pour les supprimer progressivement.
Happy Computing!