我正在尋找一個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循環,然後解析文件名並在該循環內移動文件 - 但由於有幾百個文件需要移動,所以我很擔心這種效率。 任何人都可以建議最乾淨和最有效的方式做到這一點?任何幫助將非常感激。
這些文件位於何處?它們全都在一個文件夾中,還是需要搜索整個文件系統?該ID是唯一的還是可能有多個以相同ID開頭的文件名?所有目標文件夾都是相對於同一個父目錄嗎? – 2013-02-13 13:07:29
文件全部在一個文件夾中。可能有幾個文件名具有相同的起始ID,但是文件將根據文件名的其餘部分移入不同的目錄。所有目標文件夾都與相同的父目錄相關。 – user1587060 2013-02-13 13:49:31
然後與@ Ekkehard.Horner建議。 – 2013-02-13 23:17:32