如何将CMD(%2)中的第二个参数传递到PowerShell变量中

时间:2018-09-11 22:46:43

标签: powershell batch-file cmd

我有一个名为test.bat的文件。

它包含对PowerShell脚本(Process.ps1)的调用,如下所示:

Powershell.exe -File %1

其中%1是我将在命令行中传递的PowerShell文件的名称。

从本质上讲,它在命令行上看起来像这样:

e:> test.bat Process.ps1

现在,脚本可以正常运行了。但是,我需要在批处理文件(test.bat)中传递第二个参数(%2),所以它看起来像这样:

Powershell.exe -File %1 %2

%1是Process.ps1

%2将是某个多维数据集名称(即CUBE1)

因此在CMD上最终看起来像这样:

e:> test.bat Process.ps1 CUBE1

现在,如何将第二个参数(CUBE1)传递到PowerShell脚本(Process.ps1)中声明的变量($CUBE)中?

我在论坛上进行了研究,但找不到像我自己的案例那样的例子。

这可能是我很想念的很简单的东西,但是我是PowerShell / batch脚本的新手,所以我不太想知道答案。

1 个答案:

答案 0 :(得分:0)

有两种方法。首先是使用Parameter声明:

Param(
    [Parameter(mandatory)]
    [String]
    $first,
    [Parameter(mandatory)]
    [String]
    $second
)
Write-Output "First argument: " $first
Write-Output "First argument: " $second

第二个是内置的$args变量:

Write-Output "First argument: " $args[0]
Write-Output "Second argument: " $args[1]