我创建了一个正确执行两个不同vbs文件的file.bat:
cscript "\\server_1\dir\file_M_1.vbs" "\\server_1\dir\muc1.xlsm"
cscript "\\server_2\dir\file_H_2.vbs" "\\server_2\dir\muc2.xlsm"
两个files.vbs的代码是相同的,因为它是为了在两个不同的服务器上做同样的事情而创建的。
这是file_M_1.vbs的内容,它只是运行名为" copy_M"的宏:
Dim args, objExcel
Set args = WScript.Arguments
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open args(0)
objExcel.Visible = False
objExcel.Run "copy_M"
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close(0)
objExcel.Quit
相反,这是file_H_2.vbs的代码,它运行的宏名为" copy_H":
Dim args, objExcel
Set args = WScript.Arguments
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open args(0)
objExcel.Visible = False
objExcel.Run "copy_H"
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close(0)
objExcel.Quit
我'我想知道是否有'只能在一个file.bat或file.exe中收集所有三段代码的可能性 (甚至计划在特定时间内使用windows7的任务调度程序运行。)
答案 0 :(得分:1)
我用这种方式解决了这个问题。在其他人的帮助下,我们只创建了一个file.bat:
cscript "\\server1\dir\file.vbs"
它运行file.vbs:
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.open("\\server1\dir\muc1.xlsm")
objExcel.Visible = False
objExcel.Run "copy_M"
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Workbooks.open("\\server2\dir\muc2.xlsm")
objExcel.Visible = False
objExcel.Run "copy_H"
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Quit
它完美运行。我把windows7的任务调度程序放在file.bat中,一切都没问题。
我不知道是否可以只创建一个.exe(不是运行.vbs的.bat)