无法通过powershell将星号字符传递给外部命令

时间:2016-02-29 04:25:00

标签: powershell

我无法使用powershell

将星号字符传递给外部命令

我使用了

之类的行
& .\args.bat @("-arg1", "-arg2", "*.test.com")

其中args.bat只转储传递的参数

@ECHO off
ECHO The %~nx0 script args are...
for %%I IN (%*) DO ECHO %%I

而不是传递" * .test.com"它查找当前目录中与模式匹配的文件" * .test.com"并将它们的列表发送到args.bat

如果您使用" *"而不是" * .test.com"

我还试过回字符来逃避星号,但它没有帮助

在我的情况下使用星号是必需的,因为我将它传递给makecert.exe以创建通配符域证书

请帮忙

2 个答案:

答案 0 :(得分:0)

我没有看到。作为测试,我创建了args.bat,如下所示:

'pause' > args.bat

然后执行它:

& .\args.bat @("-arg1", "-arg2", "*.ps1")

当我在命令行中查看该cmd.exe的任务管理器时,我看到:

enter image description here

它必须是批处理文件正在执行的操作,因为PowerShell对您的*不执行任何操作。顺便说一下,我使用*.ps1因为我执行的目录中有大量的ps1文件。

答案 1 :(得分:0)

如果您是PS 3.0或更高版本,则可以使用“停止解析运算符”--%。有关详细信息,请参阅help about_parsing