
Я использую этот скрипт для отправки писем людям, которым я постоянно отправляю короткие сообщения, а также для обновления своегопомни омолокезадачи от launchy.
Когда мне нужно добавить новую задачу, я просто
- Ударятьальт+пробел(вызываетпусковой)
- типрр
- ударятьвкладка
- тип "это моя задача"
- нажмите Ввод
Мне бы хотелось, чтобы мне не приходилось писать "", так как это сильно меня замедляет.
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") = "[email protected]"
Flds.Item(schema & "sendpassword") = "YOURPASSWORD"
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
With iMsg
.To = "[email protected]"
.From = "jacob <[email protected]"
.Subject = wscript.arguments.item(0)
.HTMLBody = message
.Sender = " "
.Organization = " "
.ReplyTo = " "
Set .Configuration = iConf
SendGMAILGmail = .Send
End With
set iMsg = nothing
set iConf = nothing
set Flds = nothing
решение1
Я не уверен, что полностью понимаю вопрос, но предполагаю, что ваша задача выполняется путем передачи в скрипт всего, что вы вводите в качестве аргументов командной строки, и поскольку вы используете wscript.arguments.item(0)
в качестве субъекта , вам нужно добавить кавычки, чтобы гарантировать, что полный субъект включен в первый аргумент.
Используя (немного безумный) код изздесь, следующее должно работать
Set oWMISrvc = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\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") = "[email protected]"
Flds.Item(schema & "sendpassword") = "YOURPASSWORD"
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
With iMsg
.To = "[email protected]"
.From = "jacob <[email protected]"
.Subject = sArguments
.HTMLBody = message
.Sender = " "
.Organization = " "
.ReplyTo = " "
Set .Configuration = iConf
SendGMAILGmail = .Send
End With
set iMsg = nothing
set iConf = nothing
set Flds = nothing
В качестве альтернативы просто объедините все предоставленные аргументы:
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") = "[email protected]"
Flds.Item(schema & "sendpassword") = "YOURPASSWORD"
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
With iMsg
.To = "[email protected]"
.From = "jacob <[email protected]"
.Subject = sArguments
.HTMLBody = message
.Sender = " "
.Organization = " "
.ReplyTo = " "
Set .Configuration = iConf
SendGMAILGmail = .Send
End With
set iMsg = nothing
set iConf = nothing
set Flds = nothing
Метод, который нужно использовать, будет зависеть от ваших требований. Первый метод сохранит все кавычки в командной строке, а второй метод проигнорирует пробелы между словами.