2017-03-17 93 views
1

我有一个显示该文件uploded一个简单的vbs脚本:VB脚本(VBS)添加信息到日志文件,每次它出现

Set objArgs = WScript.Arguments 
messageText = objArgs(0) 
SDateTime = WeekdayName(Weekday(Date)) & ", " & MonthName(Month(Date()), False) & " " & Day(Date()) & ", " & Year(Date()) 
MsgBox messageText & (DateAdd("n",1,Now())), 16 

所有的东西我要找的是哪些信息在消息框中:

MsgBox messageText & (DateAdd("n",1,Now())), 16 

将追加到日志文件,所以我就可以回来检查时,每个文件被上传。

这是BAT文件。

@echo off 
:loop 
set "datafolder=xxx" 
set "tempdatafolder=%temp%\tempdata" 
set switches=/r:0 /w:0 /mir /ns /nc /ndl /np /njh /njs 


robocopy %switches% "%datafolder%" "%tempdatafolder%" 

if exist "%datafolder%\*xxx*.xlsx" (
cscript n:\xxx\xxx\xxx.vbs "xxx READY!! " 
echo XXX IS READY FOR PROSECCING 
EXIT 
) else (
timeout 5 
goto :loop 
) 

goto :loop 

回答

5

.vbs文件

Option Explicit 

Dim messageText 
    If WScript.Arguments.Count > 0 Then 
     messageText = WScript.Arguments.Item(0) & " " & DateAdd("n", 1, Now()) 
     MsgBox messageText, 16 
     WScript.StdOut.WriteLine messageText 
    End If 

里面.bat文件

>>"logFile.log" cscript //nologo n:\xxx\xxx\xxx.vbs "xxx READY!! " 

也就是说,使.vbs文件不仅显示消息框,但也写慰问文本。在批处理文件cscript内执行被重定向,所以它的输出将附加到日志文件。

另一个(不是更好的)选项(如果你可以没有对话框图标)可以改变输出方法并调用两次.vbs脚本。所以

.vbs文件

Option Explicit 

Dim messageText 
    If WScript.Arguments.Count > 0 Then 
     messageText = WScript.Arguments.Item(0) & " " & DateAdd("n", 1, Now()) 
     WScript.Echo messageText 
    End If 

内部.bat文件

>>"logFile.log" cscript //nologo n:\xxx\xxx\xxx.vbs "xxx READY!! "  
wscript n:\xxx\xxx\xxx.vbs "xxx READY!! " 

.vbs文件wscript.exe下执行时,WScript.Echo方法示出了一个消息框,但是当cscript.exe下执行它的文本输出到控制台(在批处理文件中重定向)。

+0

哪里会创建LogFile.log? –

+1

@MRSample,你指出的地方是'>>“x:\ somewhere \ file.log”'为绝对路径,'>>“。\ file.log”'为相对于当前活动目录的路径,'> >“%〜dp0 \ file.log”'为存储批处理文件的文件夹,...您决定 –

+0

感谢您的帮助 –