Hallo an Alle AutoIt-Profis,
ich möchte in einem Autoit-Proggi vbs-Script implementieren(das VBS-Script soll Bios-Settings via herstellerabhängigen WMI-Klassen ändern).
Folgenden Code habe ich aus dem Forum in den Autoitcode übernommen:
Code
Func ViewStatus()
Local $Vbs = ObjCreate("MSScriptControl.ScriptControl")
If @error Then
MsgBox(16, 'Error', 'Error creating ScriptControl')
Exit
EndIf
Local $sCode = 'Function ViewStatus()' & _
@LF & ' On Error Resume Next & _
@LF & ' Dim colItems & _
@LF & ' If WScript.Arguments.Count <> 3 Then & _
@LF & ' WScript.Echo "SetConfigPassword.vbs [setting] [value] [password + encoding]" & _
@LF & ' WScript.Quit & _
@LF & ' End If & _
@LF & ' strRequest = WScript.Arguments(0) + "," + WScript.Arguments(1) + "," + WScript.Arguments(2) + ";" & _
@LF & ' strComputer = "LOCALHOST" ' Change as needed. & _
@LF & ' Set objWMIService = GetObject("WinMgmts:" _ & _
@LF & ' &"{ImpersonationLevel=Impersonate}!\\" & strComputer & "\root\wmi") & _
@LF & ' Set colItems = objWMIService.ExecQuery("Select * from Lenovo_SetBiosSetting") & _
@LF & ' For Each objItem in colItems & _
@LF & ' ObjItem.SetBiosSetting strRequest, strReturn & _
@LF & ' Next & _
@LF & ' WScript.Echo strRequest & _
@LF & ' WScript.Echo " SetBiosSetting: " + strReturn & _
@LF & ' WScript.Quit & _
@LF & ' End Function' & @LF
$Vbs.Language = 'VBScript'
$Vbs.AddCode($sCode)
$sRET = $Vbs.Run('WakeOnLAN', 'Disable', 'bla,ascii,us')
$aArray1 = StringSplit($sRET, ":")
_ArrayDisplay($aArray1)
EndFunc ;==>ViewStatus
Alles anzeigen
Was ich nicht verstehe ist, dass der Originalcode(s.u.) keinen Syntaxfehler ausgibt. Bei meinen geänderten VBS-Zeilen der Variablen $sCode, jedoch jedes ' reklamiert wird
Kann mir wer den Unterschied erklären und benötige ich für die Aktion i-welche Includes?
Originalcode:
Code
Global $Vbs, $sCode, $sRET
$sCode = 'Function LoginValues(sUserInput, sPassInput)' & _
@LF & ' Dim RetStr' & _
@LF & ' RetStr = "Login values were:" & vbCRLF' & _
@LF & ' RetStr = RetStr & "User name = " & sUserInput & vbCRLF' & _
@LF & ' RetStr = RetStr & "Password = " & sPassInput & vbCRLF' & _
@LF & ' LoginValues = RetStr' & _
@LF & 'End Function' & @LF
$Vbs = ObjCreate('ScriptControl')
If @error Then
MsgBox(16, 'Error', 'Error creating ScriptControl')
Exit
EndIf
$Vbs.Language = 'VBScript'
$Vbs.AddCode($sCode)
$sRET = $Vbs.Run('LoginValues', 'My_User_Name', 'My_Password')
ConsoleWrite("$sRET = " & $sRET & @LF)
Alles anzeigen