中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » VBS报无效的过程或参数错误,怎么解决
作者:
标题: VBS报无效的过程或参数错误,怎么解决 上一主题 | 下一主题
shayulei
中级用户




积分 301
发帖 74
注册 2005-2-25
状态 离线
『楼 主』:  VBS报无效的过程或参数错误,怎么解决

我写的脚本在运行过程中报无效的过程或参数错误,出错信息如图

脚本如下:
'获取日期
dtmThisDay = Day(Date)
dtmThisMonth = Month(Date)
dtmThisYear = Year(Date)
tmToday = dtmThisMonth & "/" & dtmThisDay & "/" & dtmThisYear
Logfile = dtmThisYear & "年" & dtmThisMonth & "月"


'设置日期
Const CONVERT_TO_LOCAL_TIME = True
Set dtmStartDate = CreateObject("WbemScripting.SWbemDateTime")
Set dtmEndDate = CreateObject("WbemScripting.SWbemDateTime")
DateToCheck = CDate(tmToday)
dtmStartDate.SetVarDate DateToCheck, CONVERT_TO_LOCAL_TIME

'查询日志
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
    ("Select * from Win32_NTLogEvent Where Logfile = 'system' AND EventCode = 10 AND SourceName = 'print' AND TimeWritten < '"& dtmStartDate & "'")


'写文本文件
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
    ("E:\files\PrintLog\" & Logfile & ".txt", ForAppending, True)
For Each objService in colLoggedEvents
    objTextFile.WriteLine(objService.ComputerName & vbTab & objService.Message & vbTab & objService.RecordNumber & vbTab & Mid(objService.TimeWritten,1,4) & "/" & Mid(objService.TimeWritten,5,2) & "/" & Mid(objService.TimeWritten,7,2) & vbTab & Mid(objService.TimeWritten,9,2) & ":" & Mid(objService.TimeWritten,11,2) & ":" & Mid(objService.TimeWritten,13,2) & vbTab & objService.User)
Next
objTextFile.Close

附件 1: 未命名.jpg (2008-9-25 17:47, 29.34 K,下载次数: 1)


2008-9-25 17:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zqz0012005
中级用户




积分 297
发帖 135
注册 2006-10-21
状态 离线
『第 2 楼』:  

tmToday = dtmThisMonth & "/" & dtmThisDay & "/" & dtmThisYear
Logfile = dtmThisYear & "年" & dtmThisMonth & "月"

“/”怎能做文件名?



hh.exe ntcmds.chm::/ntcmds.htm
2008-9-25 17:58
查看资料  发短消息 网志  OICQ (411976538)  编辑帖子  回复  引用回复
shayulei
中级用户




积分 301
发帖 74
注册 2005-2-25
状态 离线
『第 3 楼』:  

tmToday是放今天的日期的变量

2008-9-26 08:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
shayulei
中级用户




积分 301
发帖 74
注册 2005-2-25
状态 离线
『第 4 楼』:  

问题应该出在这条打印记录上:

user1 拥有的文档 218, Microsoft Word - C2O4•2H2O 已通过 HP5200 端口在 HP LaserJet 5200 PCL 6 打印。字节大小: 96459, 打印页数: 1





其中“C2O4•2H2O  ” 有很奇怪的字条,请问怎么用VBS处理?

好像有一些似似于全角的字符就会出错,怎么解决?

2008-9-26 09:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
shayulei
中级用户




积分 301
发帖 74
注册 2005-2-25
状态 离线
『第 5 楼』:  

问题发现,日志里用Unicode 格式的,而VBS输出是ANSI格式的,请问怎么让VBS输出Unicode格式?

2008-9-26 09:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Vampire
初级用户





积分 176
发帖 78
注册 2007-4-15
状态 离线
『第 6 楼』:  

chrw试下看.

2008-9-26 18:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zqz0012005
中级用户




积分 297
发帖 135
注册 2006-10-21
状态 离线
『第 7 楼』:  Re 5楼



  Quote:
object.OpenTextFile(filename[, iomode[, create[, format]]])

format
可选项。使用三态值中的一个来指明打开文件的格式。如果忽略,那么文件将以 ASCII 格式打开。format 参数可以是下列设置中的任一种:
TristateTrue -1 True 以 Unicode 格式打开文件。
TristateFalse 0 False 以 ASCII 格式打开文件。
TristateUseDefault -2 使用计算机区域设置中的设置。 使用系统默认值打开文件。

2楼没看清,以为Logfile中包含tmToday



hh.exe ntcmds.chm::/ntcmds.htm
2008-9-26 19:03
查看资料  发短消息 网志  OICQ (411976538)  编辑帖子  回复  引用回复
shayulei
中级用户




积分 301
发帖 74
注册 2005-2-25
状态 离线
『第 8 楼』:  

谢谢
Set objTextFile = objFSO.OpenTextFile _
    ("E:\files\PrintLog\" & Logfile & ".txt", ForAppending, True, -1)

2008-9-27 08:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: