2013-09-30 36 views
1

我有一個文件夾海量數量,我需要製作一些文件夾,並將它們放入該文件夾(每個文件夾下面的50),文件夾名稱可以是任何東西。我以爲文件夾名稱爲數字(1,2,3 ...等) 這裏是我做了,但不工作隨機使用隨機名稱目錄 - vbs

Set fso=CreateObject("Scripting.FileSystemObject") 
    inputFldr =".\myFolder" 
    Set fldr=fso.getFolder(inputFldr) 
    dim i 
    i=0 
    fName = 0 

for each file in fldr.files 
    i = i+1 
    If Not fso.FolderExists(fName) Then fso.CreateFolder(fName) 
    fso.MoveFile file, fName 

    if i>50 then 
     fName = fName + 1 
     i = 0 
    end if 
next 
wscript.echo done 
+1

如果'如果不FSO .FolderExists(...)'行實際上是1行,在該行的末尾刪除'End If',並且如果您不是以十六進制工作,則在'&前後放置空格。但如果這是你的所有代碼,我懷疑它會工作,因爲它沒有實際的文件夾路徑。 – PatricK

+0

我只是照你說的去做。但沒有工作。但我只是發現一些錯誤的事情,我做了我要編輯上面的代碼非常感謝你 – mhs

回答

3

試試這個:

Dim i, fName, inputFldr, TmpFdr 

Set fso = CreateObject("Scripting.FileSystemObject") 
inputFldr = Replace(wscript.scriptfullname,wscript.scriptname,"myFolder") 
Set fldr = fso.getFolder(inputFldr) 
i = 0 
fName = 0 
wscript.echo "Input Folder: " & fldr.path 
For Each file In fldr.Files 
    i = i + 1 
    TmpFdr = inputFldr & "\" & fName & "\" 
    if Not fso.FolderExists(TmpFdr) Then fso.CreateFolder (TmpFdr) 
    file.move TmpFdr 

    If i > 50 Then 
     fName = fName + 1 
     i = 0 
    End If 
Next 
set fldr=nothing 
set fso=nothing 
+0

它真的沒有工作。非常感謝你。 我真的很感激,如果任何人可以告訴我我的錯誤。 – mhs

+1

'fso.FolderExists(fName)'不知道'fName'與哪個文件夾相關,所以總是最好擁有完整路徑。閱讀[MSDN FileSystemObject](http://msdn.microsoft.com/en-us/library/6tkce7xa(v = vs.84).aspx)。請標記答案btw。 – PatricK