打印按FileName排序的目录中的文件

时间:2013-08-13 12:51:09

标签: vbscript

我正在尝试在目录中打印文档,按文件名升序排序。我有下面的脚本打印出有效的文档,但它是随机顺序的。有没有办法根据名称对“文件”集合进行排序?

'Set the TargetFolder
TargetFolder = "C:\Temp\Hewitt\TestPrintFolder" 

Set shellApplication = CreateObject("Shell.Application") 
Set folder = shellApplication.Namespace(TargetFolder) 
Set files = folder.Items 
For Each file In files 
    file.InvokeVerbEx ("Print") 
Next

1 个答案:

答案 0 :(得分:3)

有很多方法可以在目录中获取文件(名称)的odered列表。一个使用.NET ArrayList - 就像这样:

Option Explicit

Dim oFS    : Set oFS    = CreateObject("Scripting.FileSystemObject")
Dim sDir   : sDir       = "... your folder ..."
Dim oFiles : Set oFiles = CreateObject("System.Collections.ArrayList")
Dim oFile
For Each oFile In oFS.GetFolder(sDir).Files
    WScript.Echo oFile.Name
    oFiles.Add  oFile.Path
Next
WScript.Echo "----------"
oFiles.Sort
Dim sFile
For Each sFile In oFiles
    WScript.Echo oFS.GetFile(sFile).Name
Next

如果你无法利用.Net,你可以

  1. 将名称存储在VBScript数组中并查找/编写排序子/函数
  2. 使用断开连接的ADODB记录集
  3. shell dir /o:n