如何在执行PS1脚本前通过参数设置PowerShell变量
解决PowerShell脚本外部传参赋值问题
你之前的方法不生效,是因为用-File参数调用脚本时,PowerShell不会先解析你写的变量赋值语句,得换两种正确的方式:
方法一:修改脚本,让它接受参数
把你的script.ps1改成下面这样,通过param块声明要接收的参数:
param( [string]$WhichSite # 声明参数变量 ) curl -UseBasicParsing "http://www.$WhichSite.com"
然后用下面的命令调用:
powershell.exe -ExecutionPolicy Bypass -File "C:/script.ps1" -WhichSite "StackOverflow"
方法二:不修改脚本,用-Command参数调用
如果不想改脚本,就换-Command参数执行,先定义变量再调用脚本:
powershell.exe -ExecutionPolicy Bypass -Command "$WhichSite='StackOverflow'; & 'C:/script.ps1'"
这里&是用来调用脚本文件的操作符,确保变量定义后脚本能读取到。
内容的提问来源于stack exchange,提问作者Name F
相关产品推荐
相关产品推荐

