最后,我试图返回'Product Version'of Robocopy.exe(为了避免使用 XP026;损坏的返回码)。我可以使用Shell.Application,NameSpace来ParseName获取“产品版本”,但我需要NameSpace事先知道(文件夹|目录|路径)。
我无法将 NameSpace 路径写入脚本,因为它将在不同的计算机上运行,并且 Robocopy.exe 可能位于系统 PATH 环境变量中列出的一个或多个目录中。我只对在 PATH 中找到的那些感兴趣,而且对将作为WScript.ShellRun 方法的结果执行的实例感兴趣。WScript.Shell Run当未指定绝对路径时,将执行在系统搜索路径中找到的第一个实例。那是我有兴趣找到的那个。
我的备份计划是使用 where.exe 程序找到完整路径Robocopy.exe,将其返回到我的 vbs 脚本,WScript.Shell Exec oExec.StdOut然后提取要使用的路径,如NameSpace上面的代码所示。
我一直在寻找 winapi 搜索路径函数/方法的 vbs 或 com 控制实现,但没有运气。我很惊讶它还没有在FileSystemObjector中实现Shell.Application。我感谢任何帮助、推荐或想法。