1

管理者に現在のログ ファイルを電子メールで送信する .vbs スクリプトを作成しました。

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\automatic_deployment\filename.txt",    ForReading)
fileName = objTextFile.ReadLine
Wscript.Echo fileName

Dim ToAddress
Dim FromAddress
Dim MessageSubject
Dim MyTime
Dim MessageBody
Dim MessageAttachment
Dim ol, ns, newMail
Dim month
ToAddress = "myaddress@myemail.com"
MessageSubject = "Deployment was successful"
MyTime = Now
MessageBody = "Successful deployment. Log file is attached." 
MessageAttachment = "C:\M\XYZ\201206\"&fileName&"_DEV_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

ご覧のとおり、「MessageAttachment」という変数があり、ログ ファイルが添付されています。ログ ファイルの宛先部分には、年と月を表す 201206 があります。そのフォルダーには、2012 年 6 月のログが保持されます。その月は毎月増加します。ご覧のとおり、ハードコードされています。これまでのところ問題なく動作します。しかし、もう少しダイナミックにすることで、さらに一歩進めたいと思います。変数を作成し、現在の月の現在の値を取得して、次のようにソース宛先のその部分に配置したいと考えています。

month = aqDateTime.GetMonth(Date)
MessageAttachment = "C:\M\XYZ\2012"&month&"\"&fileName&"_DEV_Log.txt"

これは機能しますか?どんな助けでも大歓迎です。前もって感謝します!

4

2 に答える 2

0

あなたはできる;

dim thisMonth: thisMonth = cstr(month(date))
if (len(thisMonth) = 1) then thisMonth = "0" & thisMonth

作る

"C:\M\XYZ\2012" & thisMonth & "\" & fileName & "_DEV_Log.txt"

同等

"C:\M\XYZ\201206\XXX_DEV_Log.txt"

year(date)今年分)

于 2012-06-26T15:33:02.110 に答える