windows - Call PowerShell Script From Batch File With All Parameters -
this question , this blog post address how pass particular parameters powershell script batch file.
how can 1 pass parameters powershell script? want splat parameters batch file passes arguments through transparently.
edit more context:
i'm using line like:
powershell.exe -command "& '%~dpn0.ps1' '%1' '%2'" this works, creates redundancy between files such that, if update powershell script take different arguments, have update batch script well. nice if like:
powershell.exe -command "& '%~dpn0.ps1' '%*'"
try following:
powershell -file "%~dpn0.ps1" %* in batch files,
%*represents arguments passed.[1]-fileparameter use invoke scripts via powershell's cli.- all remaining arguments passed through as-is (whereas
-commandsubject them round of interpretation powershell[2] ).
[1] note cmd.exe (batch files) recognize argument embedded whitespace single argument, must enclose in "...".
instance, if wanted pass arguments a , b c batch file file.cmd, you'd have call as
file "b c".
pass embedded " instances, \-escape them; e.g., "\"b c\"" makes powershell see "b c", including double quotes.
if respect these rules, %* - without quoting - passes array of arguments through.
not use "%*" - won't work expected.
[2] in effect, -command causes following arguments joined single space each, , resulting string interpreted as powershell command - is, after arguments parsed rules of cmd.exe (batch files), subject another round of parsing, powershell.
unfortunately, powershell has worked way, behavior obscure, , cause more confusion in unix world, powershell has gone cross-platform - see this github issue.
Comments
Post a Comment