Exécuter le fichier BAT à partir du script Powershell

Siddharth Bishnoi 30 janvier 2023
  1. Créer et exécuter un script PowerShell
  2. Exécuter un fichier batch à partir d’un script PowerShell
  3. Exécuter un fichier batch à partir d’un script PowerShell avec des arguments
  4. Exécuter des commandes par lots à partir de PowerShell
  5. Conclusion
Exécuter le fichier BAT à partir du script Powershell

Un fichier Batch consiste en une série de commandes qui s’exécutent ligne par ligne de manière séquentielle. Ces fichiers batch sont exécutés dans cmd.exe, un interpréteur de ligne de commande initialement publié pour la famille Windows NT.

De même, un fichier PowerShell est un fichier texte composé d’une liste de commandes exécutées par l’interface de ligne de commande PowerShell ; il est enregistré avec l’extension .ps1. Il s’agit du dernier shell et outil de script pour Windows et d’une version cmd plus avancée.

Pour exécuter un fichier .bat à partir d’un script PowerShell, vous pouvez l’exécuter manuellement à partir du PowerShell. Mais, l’ajout d’un fichier .bat à un script PowerShell pour l’exécuter automatiquement sans aucune intervention de l’utilisateur peut parfois ne pas fonctionner en raison de quelques erreurs mineures qui doivent être corrigées.

Cet article illustrera différentes manières d’exécuter un fichier Batch à partir d’un script PowerShell.

Créer et exécuter un script PowerShell

Pour créer un script PowerShell, ouvrez le Bloc-notes et ajoutez les commandes à exécuter. Enregistrez le fichier avec l’extension .ps1 pour l’enregistrer en tant que fichier PowerShell.

Vous pouvez utiliser n’importe quel éditeur de texte pour créer un fichier.

Créer un script PowerShell

Pour exécuter un script PowerShell, faites un clic droit sur le fichier PowerShell et cliquez sur Exécuter avec PowerShell. Vous pouvez également modifier le fichier dans PowerShell ISE.

Exécuter un script PowerShell

Exécuter un fichier batch à partir d’un script PowerShell

Pour exécuter un fichier .bat à partir du script PowerShell, ajoutez la ligne suivante au script PowerShell :

& .\testfile1.bat

Exécuter un fichier BAT à partir d’un script PowerShell

Mais cela ne fonctionne que lorsque testfolder est le chemin relatif ou lors de l’utilisation de la lettre de lecteur dans le chemin. Une approche plus stable peut être faite.

Par exemple, nous avons un fichier .bat nommé testfile.bat, qui se compose de commandes qui envoient la sortie à un fichier texte nommé opt.txt. Ajoutez le fichier Batch à un script PowerShell pour qu’il s’exécute automatiquement lors de l’exécution du script PowerShell.

Ajoutez la ligne suivante au script PowerShell pour exécuter le fichier Batch :

cmd.exe /c 'testfile1.bat'

Exécuter un fichier BAT à partir d’un script PowerShell à l’aide de CMD

Production:

Exécuter un fichier BAT à partir de la sortie du script PowerShell

Une autre façon d’exécuter un fichier Batch à partir du script PowerShell consiste à utiliser l’applet de commande Start-Process. Pour exécuter le fichier Batch, ajoutez la ligne de code suivante au script PowerShell :

Start-Process -FilePath 'C:\Users\Aastha Gas Harda\Desktop\testfile1.bat' -NoNewWindow

Exécuter un fichier BAT à partir d’un script PowerShell à l’aide de Start-Process

Où:

  • -Filepath spécifie le chemin du fichier Batch.
  • -NoNewWindow lance le traitement dans la fenêtre en cours.

Pour exécuter le fichier Batch en tant qu’administrateur, ajoutez -verb runas dans le code ci-dessus :

Start-Process -FilePath 'C:\Users\Aastha Gas Harda\Desktop\testfile1.bat' -Verbose Runas -NoNewWindow

Exécuter un fichier BAT à partir d’un script PowerShell en tant qu’administrateur

Cette commande est utile lorsque votre fichier .bat contient des commandes qui nécessitent des privilèges d’administrateur pour s’exécuter à l’exécution.

Exécuter un fichier batch à partir d’un script PowerShell avec des arguments

Pour exécuter un fichier Batch à partir du script PowerShell qui contient des arguments, vous pouvez le faire en utilisant le paramètre -ArgumentList et en spécifiant chaque argument dans un tableau de chaînes. En prenant l’exemple ci-dessus, ajoutez la ligne de code suivante dans le script PowerShell :

Start-Process -FilePath "cmd.exe" -ArgumentList @("/B", "/C", "`"", "^`"testfile1.bat^`"", "^`"$inputFilePath^`"", "`"") -NoNewWindow;

Exécuter un fichier BAT à partir d’un script PowerShell avec des arguments

Exécuter des commandes par lots à partir de PowerShell

Plutôt que le fichier Batch, vous pouvez également exécuter des commandes Batch directement à partir du script PowerShell. Ajoutez la ligne de code suivante pour exécuter la commande echo afin d’imprimer la sortie sous la forme hello world.

Start-Process "cmd.exe" '/c echo helloworld' -NoNewWindow

Exécutez les commandes CMD directement à partir de PowerShell

Conclusion

Nous avons donc expliqué comment exécuter un fichier Batch à partir du script PowerShell de la manière la plus sûre possible. Nous avons également expliqué comment exécuter des commandes Batch directement à partir de PowerShell au lieu d’un script PowerShell sans intervention de l’utilisateur.