Führen Sie die BAT-Datei aus dem Powershell-Skript aus

Führen Sie die BAT-Datei aus dem Powershell-Skript aus

  1. Erstellen Sie ein PowerShell-Skript und führen Sie es aus
  2. Führen Sie eine Batch-Datei aus einem PowerShell-Skript aus
  3. Führen Sie eine Batchdatei aus PowerShell-Skript mit Argumenten aus
  4. Führen Sie Batch-Befehle von PowerShell aus
  5. Fazit

Eine Batch-Datei besteht aus einer Reihe von Befehlen, die nacheinander Zeile für Zeile ausgeführt werden. Diese Batch-Dateien werden in cmd.exe ausgeführt, einem ursprünglich für die Windows NT-Familie veröffentlichten Befehlszeileninterpreter.

Ähnlich ist eine PowerShell-Datei eine Textdatei, die aus einer Liste von Befehlen besteht, die von der PowerShell-Befehlszeilenschnittstelle ausgeführt werden; es wird mit der Erweiterung .ps1 gespeichert. Es ist das neueste Shell- und Scripting-Tool für Windows und eine erweiterte cmd-Version.

Um eine .bat-Datei aus einem PowerShell-Skript auszuführen, können Sie sie manuell aus der PowerShell ausführen. Aber das Hinzufügen einer .bat-Datei zu einem PowerShell-Skript, um es automatisch ohne Benutzereingriff auszuführen, kann manchmal aufgrund einiger kleinerer Fehler, die behoben werden sollten, nicht ausgeführt werden.

In diesem Artikel werden verschiedene Möglichkeiten zum Ausführen einer Batch-Datei aus einem PowerShell-Skript veranschaulicht.

Erstellen Sie ein PowerShell-Skript und führen Sie es aus

Um ein PowerShell-Skript zu erstellen, öffnen Sie Notepad und fügen Sie die auszuführenden Befehle hinzu. Speichern Sie die Datei mit der Erweiterung .ps1, um sie als PowerShell-Datei zu speichern.

Sie können einen beliebigen Texteditor verwenden, um eine Datei zu erstellen.

Erstellen Sie ein PowerShell-Skript

Um ein PowerShell-Skript auszuführen, klicken Sie mit der rechten Maustaste auf die PowerShell-Datei und klicken Sie auf Run with PowerShell. Sie können die Datei auch in PowerShell ISE bearbeiten.

Führen Sie ein PowerShell-Skript aus

Führen Sie eine Batch-Datei aus einem PowerShell-Skript aus

Um eine .bat-Datei aus dem PowerShell-Skript auszuführen, fügen Sie die folgende Zeile zum PowerShell-Skript hinzu:

& .\testfile1.bat

Führen Sie eine BAT-Datei aus einem PowerShell-Skript aus

Dies funktioniert jedoch nur, wenn testfolder der relative Pfad ist oder wenn der Laufwerksbuchstabe im Pfad verwendet wird. Es kann eine stabilere Annäherung vorgenommen werden.

Zum Beispiel haben wir eine .bat-Datei namens testfile.bat, die aus Befehlen besteht, die die Ausgabe an eine Textdatei namens opt.txt senden. Fügen Sie die Batch-Datei einem PowerShell-Skript hinzu, damit sie automatisch ausgeführt wird, wenn das PowerShell-Skript ausgeführt wird.

Fügen Sie dem PowerShell-Skript zum Ausführen der Batch-Datei die folgende Zeile hinzu:

cmd.exe /c 'testfile1.bat'

Führen Sie eine BAT-Datei aus einem PowerShell-Skript mit CMD aus

Ausgabe:

Führen Sie eine BAT-Datei aus der PowerShell-Skriptausgabe aus

Eine andere Möglichkeit, eine Batch-Datei aus dem PowerShell-Skript auszuführen, ist die Verwendung des Cmdlets Start-Process. Um die Batch-Datei auszuführen, fügen Sie dem PowerShell-Skript die folgende Codezeile hinzu:

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

Führen Sie eine BAT-Datei aus dem PowerShell-Skript mit Start-Process aus

Wo:

  • -Filepath gibt den Pfad der Batch-Datei an.
  • -NoNewWindow startet den Prozess im aktuellen Fenster.

Um die Batch-Datei als Administrator auszuführen, fügen Sie im obigen Code -verb runas hinzu:

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

Führen Sie eine BAT-Datei aus dem PowerShell-Skript als Administrator aus

Dieser Befehl ist nützlich, wenn Ihre .bat-Datei Befehle enthält, für deren Ausführung Administratorrechte erforderlich sind.

Führen Sie eine Batchdatei aus PowerShell-Skript mit Argumenten aus

Um eine Batch-Datei aus dem PowerShell-Skript auszuführen, das Argumente enthält, können Sie dies tun, indem Sie den Parameter -ArgumentList verwenden und jedes Argument in einem Array von Zeichenfolgen angeben. Fügen Sie anhand des obigen Beispiels die folgende Codezeile im PowerShell-Skript hinzu:

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

Führen Sie eine BAT-Datei aus einem PowerShell-Skript mit Argumenten aus

Führen Sie Batch-Befehle von PowerShell aus

Anstelle der Batch-Datei können Sie Batch-Befehle auch direkt aus dem PowerShell-Skript ausführen. Fügen Sie die folgende Codezeile hinzu, um den Befehl echo auszuführen und die Ausgabe als hello world zu drucken.

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

Führen Sie CMD-Befehle direkt aus PowerShell aus

Fazit

Wir haben also besprochen, wie Sie eine Batch-Datei aus dem PowerShell-Skript so sicher wie möglich ausführen können. Wir haben auch besprochen, wie Sie Batch-Befehle direkt aus der PowerShell anstelle eines PowerShell-Skripts ohne Benutzereingriff ausführen können.