我正在寻找编写一个 vbs 脚本来执行以下操作。- 有一个映射文件,其中包含一个标识符,后跟一个目录名称(例如 123456-Documents)。- 对于映射文件中的每一行,都会有一个以我需要移动到别处的标识符开头的文档(例如 123456_otherStuff_Dec 12.xls)。- 然后我需要解析完整的文件名并取中间字符串(otherStuff)来确定它进入哪个子目录。
所以在上面的例子中,文件“123456_otherStuff_Dec 12.xls”应该在目录 C:.../current/Documents/otherStuff/123456_otherStuff_Dec 12.xls 中结束。
我是 vbs 的新手,但我对 Java 有一点了解,所以能够开始做这件事。这是我到目前为止所拥有的:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Documents and Settings\w133960\Desktop\test1\Text1.txt", ForReading)
Const ForReading = 1
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
For Each strLine in arrFileLines
WScript.Echo strLine
MyArray = Split(strLine, "-", -1, 1)
WScript.Echo MyArray(0)
WScript.Echo MyArray(1)
Next
这将通过映射文件并将为我解析标识符。下一部分将搜索以标识符开头的文件,然后解析它的文件名并将其移动到相关目录中。我可以在当前循环中添加另一个 For 循环,然后解析文件名并在该循环中移动文件 - 但我担心这样做的效率,因为有几百个文件要移动。任何人都可以建议最干净,最有效的方法吗?任何帮助将非常感激。