VBE編碼器部分工作(從以前的經驗,但這次它無法找到所需的文件。該文件位於%temp%
文件夾,所以有路徑中的空間,但我已經使用了「」如可以在代碼中可以看出,該MsgBox
顯示了正確的文件,我可以證實它的存在,但代碼失敗時fso.GetFile
。無法在VBScript中找到文件
這是一個被稱爲與目標文件(完整路徑)大的腳本的一部分目標文件先前由調用腳本創建。
主腳本(用目標文件調用):
Set fso = CreateObject("Scripting.FileSystemObject")
Set wshShell = WScript.CreateObject("WScript.Shell")
textFile = WScript.Arguments(0)
GetExtension = fso.GetExtensionName(fso.GetFileName(textFile))
If LCase(GetExtension) = "vbs" Then
Set oFilesToEncode = WScript.Arguments
Set oEncoder = CreateObject("Scripting.Encoder")
For i = 0 To oFilesToEncode.Count - 1
file = """" & Trim(oFilesToEncode(i)) & """"
MsgBox file
If fso.FileExists(Left(file, Len(file) - 3) & "vbe") Then fso.DeleteFile(Left(file, Len(file) - 3) & "vbe")
Set oFile = fso.GetFile(file)
Set oStream = oFile.OpenAsTextStream(1)
sSourceFile = oStream.ReadAll
oStream.Close
sDest = oEncoder.EncodeScriptFile(".vbs", sSourceFile, 0, "")
sFileOut = Left(file, Len(file) - 3) & "vbe"
Set oEncFile = fso.CreateTextFile(sFileOut)
oEncFile.Write sDest
oEncFile.Close
Next
End If
WScript.Quit
調用腳本的部分:
Do While fso.FileExists(strTempVBS) = False
Loop
strKey = "HKEY_CLASSES_ROOT\Engineers-Toolbox\Multi-Tool\Installed\Path\"
value = wshShell.RegRead(strKey)
arg = " " & strTempVBS
running = "C:\Custom\Multi-Tool\Multi-Tool.exe " & """" & arg & """"
wshShell.Run running, True
我已經使用硬編碼的路徑,文件就可以得到它去,「價值」試圖包含路徑到主腳本。
您是否有錯誤代碼?你能給完整的文件路徑(包括擴展名)嗎? – Alexander
'錯誤代碼800a0035文件未找到'完整路徑是「C:\ Users \ John Doe \ AppData \ Local \ Multi-Tool \ observe.vbs」 – BertB