Glowie
Glowie

Reputation: 2309

Pass powershell variable to batch script

Here is powershell script

$a = get-date -format "MMM-d-yyyy"
Start-Process "D:\Script\send_report.bat"

send_report.bat uses blat to send email

D:
cd "D:\Program Files (x86)\blat321\full"
blat -s "Daily Report" -i "Our Team" -to [email protected],[email protected] -body "Please see attached." -priority 1 -attach D:\Script\Daily_Report.xlsx

How do I insert $a into send_report.bat? I would like value of $a next to "Daily Report"

Upvotes: 2

Views: 12814

Answers (2)

npocmaka
npocmaka

Reputation: 57262

@echo off
cd /d "D:\Program Files (x86)\blat321\full"
set "the_date=%~1"
blat -s "Daily Report" -i "Our Team" -to [email protected],[email protected] -body "Please see attached." -priority 1 -attach D:\Script\Daily_Report_%the_date%.xlsx

and call the bat like :

$a = get-date -format "MMM-d-yyyy"
Start-Process "D:\Script\send_report.bat" $a

Upvotes: 3

aphoria
aphoria

Reputation: 20199

In your PowerShell script, add $a as a parameter to the batch file:

Start-Process "D:\Script\send_report.bat" $a

In you batch file reference the parameter as %1.

blat -s "Daily Report %1" -i "Our Team" -to [email protected],[email protected] -body "Please see attached." -priority 1 -attach D:\Script\Daily_Report.xlsx

Upvotes: 3

Related Questions