【发布时间】:2015-08-14 16:30:28
【问题描述】:
我在编写我的第一个基本 PowerShell 实用程序时遇到了问题。我需要打开一个资源管理器窗口并选择一个文件,但无法正确获取命令的语法。
我在 SO,https://stackoverflow.com/a/12162855/957246 上找到了这个答案,并阅读了这个关于外部命令的优秀博客,http://edgylogic.com/blog/powershell-and-external-commands-done-right/ - 但仍然无法让它工作。
这是我的示例脚本(test.ps1):
$myFile = "C:\Projects\Scripts\any.txt"
# The backslash-backticks are to escape the speech marks, once for PowerShell and then again for DOS
& "C:\Projects\Scripts\EchoArgs.exe" /select",\`"$myFile\`""
& "explorer" /select",\`"$myFile\`""
..这是调用它的批处理文件,以防我调用 PowerShell 脚本的方式有问题:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\Projects\Scripts\test.ps1'"
我尝试了几种不同的组合,echoargs 的输出表明语法是正确的(假设资源管理器的参数字符串被视为单个字符串)但无论我尝试什么都只是在“我的文档”上打开一个资源管理器窗口并且参数被忽略/被丢弃在某处。
在 explorer.exe 开关的 MSDN 页面上有一点说逗号是一个空参数,也许这就是我需要通过不同格式设置命令来提供的东西?
【问题讨论】: