最後,我試圖返回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中實現。我感謝任何幫助,推薦或想法。