Ich bin nicht sicher, ob ich die Frage vollständig verstehe, aber ich gehe davon aus, dass Ihre Aufgabe ausgeführt wird, indem Sie die Eingabezeilen als Befehlszeilenargumente an das Skript übergeben und weil Sie wscript.arguments.item(0)
als Betreff die Anführungszeichen verwenden Stellen Sie sicher, dass das gesamte Thema im ersten Argument enthalten ist.
Mit dem (etwas verrückten) Code von hier sollte Folgendes funktionieren
Set oWMISrvc = GetObject("winmgmts:" _ & "!\\.\root\cimv2") sProcName = Mid(wsh.fullname, InstrRev(wsh.fullname, "\") + 1) Set cProcesses = oWMISrvc.ExecQuery( _ "select * from win32_process where Name = '" & sProcName & "'") For Each oProcess in cProcesses If Instr(lcase(oProcess.Commandline), lcase(wsh.scriptname)) > 0 Then sCmdLine = oProcess.Commandline End If Next iNamePos = instr(lcase(sCmdLine), lcase(Wscript.ScriptName)) sArguments = trim(mid(sCmdLine, iNamePos + len(Wscript.ScriptName))) Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields schema = "http://schemas.microsoft.com/cdo/configuration/" Flds.Item(schema & "sendusing") = 2 Flds.Item(schema & "smtpserver") = "smtp.GMAIL.com" Flds.Item(schema & "smtpserverport") = 465 Flds.Item(schema & "smtpauthenticate") = 1 Flds.Item(schema & "sendusername") = "YOU@GMAIL.COM" Flds.Item(schema & "sendpassword") = "YOURPASSWORD" Flds.Item(schema & "smtpusessl") = 1 Flds.Update With iMsg .To = "RECIEVER@MAIL.COM" .From = "jacob <YOU@GMAIL.COM" .Subject = sArguments .HTMLBody = message .Sender = " " .Organization = " " .ReplyTo = " " Set .Configuration = iConf SendGMAILGmail = .Send End With set iMsg = nothing set iConf = nothing set Flds = nothing
Alternativ verketten Sie einfach alle angegebenen Argumente:
sArguments = "" For i = 0 to Wscript.Arguments.Count - 1 if i > 0 Then sArguments = sArguments + " " End If sArguments = sArguments + Wscript.Arguments(i) Next Set iMsg = CreateObject("CDO.Message") Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields schema = "http://schemas.microsoft.com/cdo/configuration/" Flds.Item(schema & "sendusing") = 2 Flds.Item(schema & "smtpserver") = "smtp.GMAIL.com" Flds.Item(schema & "smtpserverport") = 465 Flds.Item(schema & "smtpauthenticate") = 1 Flds.Item(schema & "sendusername") = "YOU@GMAIL.COM" Flds.Item(schema & "sendpassword") = "YOURPASSWORD" Flds.Item(schema & "smtpusessl") = 1 Flds.Update With iMsg .To = "RECIEVER@MAIL.COM" .From = "jacob <YOU@GMAIL.COM" .Subject = sArguments .HTMLBody = message .Sender = " " .Organization = " " .ReplyTo = " " Set .Configuration = iConf SendGMAILGmail = .Send End With set iMsg = nothing set iConf = nothing set Flds = nothing
Die zu verwendende Methode hängt von Ihren Anforderungen ab. Die erste Methode behält alle Anführungszeichen in der Befehlszeile bei, während die zweite Methode den Abstand zwischen Wörtern ignoriert.