バッチから vbscript にパラメーターを渡すにはどうすればよいですか? 私のバッチ スクリプトは、自動実行の最後に電子メールを送信します。そのために、実際のログファイル(その実行の結果を含む)が添付された電子メールを送信するvbscript(email.vbs)を使用/呼び出します。これらのログ ファイルはすべて、201207 (2012 年 7 月)、201208 (2012 年 8 月) などの特定のフォルダーに保存されます。 2012 の部分を取得し、バッチを介してそのパラメーターから月番号を取得します) それをパラメーターとして email.vbs に設定し、適切なフォルダーを探して適切なログ ファイルを取得できるようにします。理にかなっていますか?
ECHO Checking the log file for errors...
FINDSTR /C:"RC (return code) = 0" %workDir%\%filenm%_Log.txt && (ECHO Deployment was successful.
ECHO Email is sent out...
cscript //nologo success_mail_DEV.vbs %workDir% 'passing the directory param. here.
ECHO Press ENTER to exit...
GOTO offshore) || (ECHO Deployment was not successful. Errors were found!
ECHO Email is sent out...
ECHO Press ENTER to exit...
cscript //nologo fail_mail_DEV.vbs %workDir% 'and here
GOTO offshore)
これは私が今持っているものの一部です。ログファイルでエラーをチェックし、それに応じて成功/失敗メールを呼び出します。現在、場所の名前/番号は、そこに表示される 2 つの vbs メーリング スクリプトにハードコーディングされています。電子メール vbscript のどこかにパラメータを渡す方法があると確信しています。しかし、方法がわかりません。
これは私のメーリングvbscriptです:
Const ForReading = 1
Set args = WScript.Arguments
directory = args.Item(0) 'thought that workDir would come in here
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(&directory&"\filename.txt", ForReading)
fileName = objTextFile.ReadLine
Dim ToAddress
Dim FromAddress
Dim MessageSubject
Dim MyTime
Dim MessageBody
Dim MessageAttachment
Dim ol, ns, newMail
MyTime = Now
ToAddress = "destination@email.com"
MessageSubject = "SUCCESS"
MessageBody = "It was successful"
MessageAttachment = &directory&"\"&fileName&"_Log.txt"
Set ol = WScript.CreateObject("Outlook.Application")
Set ns = ol.getNamespace("MAPI")
Set newMail = ol.CreateItem(olMailItem)
newMail.Subject = MessageSubject
newMail.Body = MessageBody & vbCrLf & MyTime
newMail.RecipIents.Add(ToAddress)
newMail.Attachments.Add(MessageAttachment)
newMail.Send
objTextFile.Close
でも効かない…
前もって感謝します!