【发布时间】:2010-11-20 14:28:54
【问题描述】:
多年来,我一直使用cmd/DOS/Windows shell 并将命令行参数传递给批处理文件。例如,我有一个文件zuzu.bat,在其中访问%1、%2 等。现在,当我调用PowerShell 脚本when I am in a Cmd.exe shell 时,我想做同样的事情。我有一个脚本xuxu.ps1(并且我已将 PS1 添加到我的 PATHEXT 变量中,并使用 PowerShell 关联 PS1 文件)。但无论我做什么,我似乎都无法从$args 变量中得到任何东西。它的长度始终为 0。
如果我在PowerShell shell 中,而不是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";
}
结果总是这样:
C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
【问题讨论】:
标签: command-line powershell arguments