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.
Run this .bat file from a PowerShell script.
See also Logging Jobs with Start-Transcript
C:\Demo\hello_world.bat
echo "Hello World" rem When editing save as "ASCII", not "UTF" |
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 |
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.
Alternative: cmd.exe /c "C:\Demo\hello_world.bat"
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 ********************** |
https://docs.microsoft.com/en-us/answers/questions/425673/running-a-cmd-within-powershell.html
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/cmd Windows Command Interpreter (cmd.exe a.k.a. Command Prompt)
/wiki/spaces/DS/pages/521732097
Run the .ps1 script in the example above from Windows Task Scheduler or SQL Server Agent.
Deleting Old Files After <n> Days Clean up old log files more than <n> days old.