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