Skip to end of banner
Go to start of banner

Run .bat File From PowerShell .ps1 Script

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Current »

PowerShell scripts can run any Windows command or .bat file. This page shows one of the several ways to run Windows command lines from PowerShell.

Example: Run a .bat file from a PowerShell script with cmd.exe

Run this .bat file from a PowerShell script.
See also Logging Jobs with Start-Transcript

.bat File for this example: C:\Demo\hello_world.bat

echo "Hello World"
rem  When editing save as "ASCII", not "UTF"

PowerShell .ps1 Script: Run_BAT_file.ps1

#########  Start Logging  ######################################### 
$DateTimeStr = Get-Date -UFormat   %Y-%m-%d@%H-%M     # date-time string for log file name 
[string]$RunLogsPath = "$($PSScriptRoot)\Run_Logs"     # path for log file created below 
[string]$Transcript_FileRef = "$($RunLogsPath)\RunLog_$DateTimeStr.txt" 
Start-Transcript -Path $Transcript_FileRef -Append -Verbose 

####  Start DOS .bat file with cmd.exe (command interpreter)
$BatFileName = "C:\Demo\hello_world.bat"
Write-Host "--------------------------------------------------------"
Write-Host "Running DOS .bat file = $BatFileName"

cmd.exe  /c $BatFileName

Stop-Transcript    # optional
Notes:

Line 3 - Uses the path of the .ps1 script as the path to the \Run_Logs folder.

Line 5 - Creates a log file in C:\Demo\Run_Logs and begins to send log records to it.
Makes the folder \Run_Logs if the folder doesn't exist.

Line 8 - Assigns the path & file name of the .bat file to run.

Line 12 - Runs the .bat file with cmd.exe.

Log File Created in C:\Demo\Run_Logs

Example: Log file created C:\Demo\Run_Logs\RunLog_2022-02-14@19-26.txt

**********************
Windows PowerShell transcript start
Start time: 20220214192617
Username: G3\msliv
RunAs User: G3\msliv
Configuration Name: 
Machine: G3 (Microsoft Windows NT 10.0.19044.0)
Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe
Process ID: 15112
PSVersion: 5.1.19041.1320
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.1320
BuildVersion: 10.0.19041.1320
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Transcript started, output file is C:\Demo\Run_Logs\RunLog_2022-02-14@19-26.txt
--------------------------------------------------------
Running DOS .bat file = C:\Demo\hello_world.bat

C:\WINDOWS\system32>echo "Hello World"
"Hello World"

C:\WINDOWS\system32>rem  When editing save as "ASCII", not "UTF"
**********************
Windows PowerShell transcript end
End time: 20220214192617
**********************

Links to docs.microsoft.com

Related Pages

  • No labels