How to Execute a .bat File within a PowerShell Job

Most of the time, you run Windows batch files using the Command Execution Method, which replicates running them in a command prompt window (cmd.exe).  But, what if you need to perform additional processing within the same job and you are running that batch processing in PowerShell? You have several methods to launch Windows batch files from within PowerShell using these methods:

How to Start a Command Procedure in PowerShell

You can start a command procedure from PowerShell with the following code. Replace the path and file with your own information.


Once you’ve called your batch file, you can customize it to the task at hand. For example:

How to Capture the Output of the Batch File

If you want to capture the output of the .bat file, you can use:

$out = C:Pathfile.bat

How to Start a Process with your .bat File

If you want to start a process with your .bat file, you can use the PowerShell start-process cmdlet:

start-process C:Pathfile.bat

How to Control cmd.exe

And, if you if you want to control cmd.exe, you can use this:

start-process "cmd.exe" "/c C:Pathfile.bat"

The start-process cmdlet is a standard PowerShell cmdlet, so anyone can use it. JAMS users leverage it regularly and combine it with JAMS specific cmdlets in our PowerShell Scheduler to add intelligent automation to batch files.

Explore PowerShell Scheduling