2016-08-19 2 views
0

다음은 파일이 첨부 된 전자 메일을 보내는 내 VBScript 코드입니다. 파일은 이메일을 보낼 때 필요한 위치에 있습니다.명령 줄에서 파일 위치 전달

>cscript sendemail.vbs D:\users\me\Desktop\readme.txt 

내가이 프로그램을 실행할 때 나는 오류 말하는 얻을 :

Set objMessage = CreateObject("CDO.Message") 
Set args = WScript.Arguments 
Set arg1 = args.Item(0) 
objMessage.Subject = "Sample subject" 
objMessage.From = "[email protected]" 
objMessage.To = "[email protected]" 
objMessage.TextBody = "Please see the error logs attached with this email" 
objMessage.AddAttachment ""&arg1&"" 
'==This section provides the configuration information for the remote SMTP server. 
'==Normally you will only change the server name or IP. 
objMessage.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 

'Name or IP of Remote SMTP Server 
objMessage.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "hostname" 

'Server port (typically 25) 
objMessage.Configuration.Fields.Item _ 
    ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 

objMessage.Configuration.Fields.Update 

'==End remote SMTP server configuration section== 

objMessage.Send 

은 내가 사용하는 명령 줄을 통해이 스크립트를 실행하려면

D:\Users\me\Desktop\sendemail.vbs(3, 1) Microsoft VBScript runtime error: Object required: '[string: "D:\Users\me\Desk"]'

이 잘못 될 수 있는지 어떤 제안?

+0

당신은 단지'objMessage.AddAttachment args (0)'을 사용할 수 있어야합니다. – Squashman

+0

당신이 말한 것을 시도했지만 똑같은 오류를줍니다. – JohnG

+0

이상합니다. 그것이 내가 vbscript로 모든 이메일을 보내는 방법입니다. 나는 모든 것을 인수로 전달하는 일반적인 vbscript를 사용한다. – Squashman

답변

1

오류 메시지에 실제로 모두 나와 있습니다. Arguments 컬렉션은 개체이지만 첫 번째 요소는 아닙니다. 그것은 VBScript에서 기본 데이터 형식 인 문자열입니다. Set 키워드는 변수에 객체를 할당하는 데만 사용됩니다. 기본 데이터 유형은 할당 연산자를 사용하여 할당됩니다.

변경이이에

Set arg1 = args.Item(0) 

:

arg1 = args.Item(0) 

및 오류가 사라집니다.

관련 문제