Passing a variable to a powershell script via command line Passing a variable to a powershell script via command line powershell powershell

Passing a variable to a powershell script via command line


Make this in your test.ps1, at the first line

param([string]$a)Write-Host $a

Then you can call it with

./Test.ps1 "Here is your text"

Found here (English)


Here's a good tutorial on Powershell params:

PowerShell ABC's - P is for Parameters

Basically, you should use a param statement on the first line of the script

param([type]$p1 = , [type]$p2 = , ...)

or use the $args built-in variable, which is auto-populated with all of the args.


Declare the parameter in test.ps1:

 Param(                [Parameter(Mandatory=$True,Position=1)]                [string]$input_dir,                [Parameter(Mandatory=$True)]                [string]$output_dir,                [switch]$force = $false                )

Run the script from Run OR Windows Task Scheduler:

powershell.exe -command "& C:\FTP_DATA\test.ps1 -input_dir C:\FTP_DATA\IN -output_dir C:\FTP_DATA\OUT"

or,

 powershell.exe -command "& 'C:\FTP DATA\test.ps1' -input_dir 'C:\FTP DATA\IN' -output_dir 'C:\FTP DATA\OUT'"