繁体   English   中英

将参数从批处理文件传递到PowerShell

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM