无法通过PowerShell的

问题描述:

星号字符传递给外部命令的星号字符使用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创建通配符域证书

请帮

+0

删除'ECHO off',你会看到'.bat'文件执行哪些命令。 – PetSerAl

我没有看到这一点。作为一个测试,我创建args.bat像这样:

'pause' > args.bat 

然后执行它:

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

当我在任务管理器中查看该CMD.EXE命令行,我明白了:

enter image description here

它必须是批处理文件所做的事情,因为PowerShell对您的*没有任何作用。顺便说一句我用*.ps1,因为我执行的目录中有大量的ps1文件。

+0

非常感谢。这是错误的批处理文件。 –

如果您是PS 3.0或更高版本,则可以使用“停止解析操作符”--%。详情请参阅help about_parsing