[英]Passing parameters from batch file to PowerShell
我想自动化一个任务,需要调用PowerShell脚本并将少量参数传递给该脚本(我不是该脚本的所有者,因此无法对其进行修改)。 有什么方法可以通过调用PowerShell脚本从批处理文件传递参数? 当我尝试手动调用.ps1文件时,请找到以下文本:
C:\Users\spa8\Desktop\V6_Git>git_powershell.bat cmdlet New-MergeRequest.ps1 at command pipeline position 1 Supply values for the following parameters: From_Branch: Xdev To_Branch: master Merge_Title: test ADL_Issues[0]:
在这里,我正在调用git_powershell.bat
文件,该文件正在调用New-MergeRequest.ps1
文件。 有什么方法可以在git_powershell.bat
文件中传递Xdev,master等参数,以便New-MergeRequest.ps1
可以读取并执行它?
系统会提示您输入信息,因为PowerShell脚本将参数定义为required ,但是没有它们就被调用。 为避免这种情况,您可以将参数作为参数传递给PowerShell脚本,或者作为位置参数:
New-MergeRequest.ps1 Xdev master "a test" ...
或命名参数:
New-MergeRequest.ps1 -From_Branch Xdev -To_Branch master -Merge_Title "a test" ...
如果您不想在批处理文件中对参数进行硬编码,则需要将批处理文件参数传递给PowerShell脚本,如下所示:
New-MergeRequest.ps1 "%~1" "%~2" "%~3" ...
或(如果要将所有批处理文件参数传递给PowerShell脚本),如下所示:
New-MergeRequest.ps1 %*
并按如下所示调用批处理文件:
git_powershell.bat Xdev master "a test" ...
请注意,批处理脚本仅支持位置参数,不支持命名参数,因此您必须以正确的顺序提供所有参数。
在您的.bat文件中:
powershell -File "file" %*
并这样称呼:
git_powershell.bat -Xdev arg1 -master uri
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.