PowerShell Supprimer le fichier s'il existe

PowerShell Supprimer le fichier s'il existe

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!