cmd/DOS/Windows
shell,并将命令行参数传递给批处理文件。例如,我有一个文件,zuzu.bat
,其中我访问 %1
,%2
等。现在,当我在 Cmd.exe shell
中调用 PowerShell
脚本时,我想要做同样的事情。我有一个脚本,xuxu.ps1
(我已将 PS1 添加到我的 PATHEXT 变量中,并将 PS1 文件与 PowerShell 相关联)。但是,无论我做什么,似乎都无法从 $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>
xuxu p1 p2 p3 p4
”)。 - thdoanpowershell.exe -File "C:\myfile.ps1" "arg1a arg1b" arg2 arg3
将返回:Num Args: 3 Arg: arg1a arg1b \r\n Arg: arg2 \r\n Arg: arg3
(我不能在评论中放置新行) - Ben Keene-File
命令会出现问题。例如:powershell.exe -file "C:\myfile.ps1" "C:\F 1\" "C:\F 2\"
会返回:C:\F 1" C:\F \r\n 2"
。 - undefined