最近搞毕业设计评语,有n多的表格要打印,一个个打印太麻烦,就写了vbs脚本,能打印当前目录下所有
doc文件,并递归打印其子目录,还能对不需要打印的文档进行过滤。
用记事本新建一个txt文件,拷入如下代码后,另存时选择类型为“所有文件”,文件名为printdoc.vbs,或者其它名字,当扩展名必须为vbs。代码如下
filterstr=inputbox("请输入不要打印的文件,用逗号分隔。如2,1表示文件名包含2或者1的不打印,输入*表示打印所有:")
filtered=false
printme=true
if filterstr<>"*" and filterstr<>"" then
filtered=true
filterlist=split(filterstr,",")
end if
if filterstr<>"" then
Set WshShell = WScript.CreateObject("WScript.Shell")
printsub(WshShell.CurrentDirectory)
msgbox "完工啦!"
end if
Sub printsub(byval curdc)
Set FSO =CreateObject("Scripting.FileSystemObject")
Set WD = CreateObject("Word.Application")
wd.visible=false
Set FD = FSO.GetFolder(curdc)
Set FN = FD.Files
For Each F1 In FN
if filtered then
printme=true
for each fl in filterlist
if Instr(LCase(Left(F1.Name,len(F1.Name)-3)),fl)<>0 then
printme=false
end if
next
end if
If UCase(Right(F1.Name, 3)) = "DOC" and printme Then
set doc=WD.Documents.Open(FD.Path & "\" & F1.Name)
doc.PrintOut
doc.close
\'WD.Documents.Close
set doc=nothing
End If
Next
wd.visible=true
WD.Quit
Set SubFD=FD.SubFolders
For Each folder in SubFD
printsub(folder.Path)
Next
Set SubFD=nothing
set fn=nothing
set fd=nothing
Set WD = Nothing
Set FSO = Nothing
End Sub
直接双击vbs程序运行,弹出一对话框,如果要打印所有文件,则输入“*”号并确定,如果有不想打印的文件,输入关键字并用逗号分隔,比如“递交,2.1“表示不打印所有文件名中包含”递交“两字或者”2.1”两字的文件。逗号输入用英文方式。程序能打印所有子目录及子子目录,希望大家用的愉快!
doc文件,并递归打印其子目录,还能对不需要打印的文档进行过滤。
用记事本新建一个txt文件,拷入如下代码后,另存时选择类型为“所有文件”,文件名为printdoc.vbs,或者其它名字,当扩展名必须为vbs。代码如下
filterstr=inputbox("请输入不要打印的文件,用逗号分隔。如2,1表示文件名包含2或者1的不打印,输入*表示打印所有:")
filtered=false
printme=true
if filterstr<>"*" and filterstr<>"" then
filtered=true
filterlist=split(filterstr,",")
end if
if filterstr<>"" then
Set WshShell = WScript.CreateObject("WScript.Shell")
printsub(WshShell.CurrentDirectory)
msgbox "完工啦!"
end if
Sub printsub(byval curdc)
Set FSO =CreateObject("Scripting.FileSystemObject")
Set WD = CreateObject("Word.Application")
wd.visible=false
Set FD = FSO.GetFolder(curdc)
Set FN = FD.Files
For Each F1 In FN
if filtered then
printme=true
for each fl in filterlist
if Instr(LCase(Left(F1.Name,len(F1.Name)-3)),fl)<>0 then
printme=false
end if
next
end if
If UCase(Right(F1.Name, 3)) = "DOC" and printme Then
set doc=WD.Documents.Open(FD.Path & "\" & F1.Name)
doc.PrintOut
doc.close
\'WD.Documents.Close
set doc=nothing
End If
Next
wd.visible=true
WD.Quit
Set SubFD=FD.SubFolders
For Each folder in SubFD
printsub(folder.Path)
Next
Set SubFD=nothing
set fn=nothing
set fd=nothing
Set WD = Nothing
Set FSO = Nothing
End Sub
直接双击vbs程序运行,弹出一对话框,如果要打印所有文件,则输入“*”号并确定,如果有不想打印的文件,输入关键字并用逗号分隔,比如“递交,2.1“表示不打印所有文件名中包含”递交“两字或者”2.1”两字的文件。逗号输入用英文方式。程序能打印所有子目录及子子目录,希望大家用的愉快!