小编Dan*_*ith的帖子

如何将命令行参数传递给PowerShell ps1文件

多年来,我一直使用cmd/DOS/Windowsshell并将命令行参数传递给批处理文件.例如,我有一个文件,zuzu.bat并在其中,我访问%1,%2等等.现在,我想,当我叫做同样的PowerShell脚本when I am in a Cmd.exe shell.我有一个脚本,xuxu.ps1(我已经将PS1添加到我的PATHEXT变量和与PowerShell关联的PS1文件).但无论我做什么,我似乎都无法从$args变量中得到任何东西.它的长度始终为0.

如果我在PowerShellshell中,而不是cmd.exe,它可以工作(当然).但我还不够舒服,无法全时在PowerShell环境中生活.我不想打字powershell.exe -command xuxu.ps1 p1 p2 p3 p4.我想打字xuxu p1 p2 p3 p4.

这是可能的,如果是的话,怎么样?

我无法工作的样本很简单,foo.ps1:

Write-Host "Num Args:" $args.Length;
foreach ($arg in $args) {
    Write-Host "Arg: $arg";
}
Run Code Online (Sandbox Code Playgroud)

结果总是如下:

C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
Run Code Online (Sandbox Code Playgroud)

powershell command-line arguments

82
推荐指数
5
解决办法
25万
查看次数

标签 统计

arguments ×1

command-line ×1

powershell ×1