Reputation: 43833
In windows CMD, I want to run a powershell script and pass string params, which have quotes and ampersands in the params.
U:\Desktop>PowerShell .\post "http://domain/api/app?pLanguage=en-US\"&\"pCompanyID=816" "{\"Message\":\"test message - please ignore\"}"
The string is missing the terminator: ".
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
'\"pCompanyID=816"' is not recognized as an internal or external command,
operable program or batch file.
How can I fix this issue?
Upvotes: 1
Views: 721
Reputation: 9975
From another question on this site - How to escape ampersands, semicolons, and curly braces in command-line powershell params?
Wrap your command line strings in nested double and single quotes - e.g. "'[somestring]'".
In your specific case:
C:> powershell .\post "'http://domain/api/app?pLanguage=en-US&pCompanyID=816'" "'{\"Message\":\"test message - please ignore\"}'"
Upvotes: 1