Führen Sie die BAT-Datei aus dem Powershell-Skript aus
- Erstellen Sie ein PowerShell-Skript und führen Sie es aus
- Führen Sie eine Batch-Datei aus einem PowerShell-Skript aus
- Führen Sie eine Batchdatei aus PowerShell-Skript mit Argumenten aus
- Führen Sie Batch-Befehle von PowerShell aus
- 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.
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 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
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'
Ausgabe:
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
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
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 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
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.