2013-09-30 4 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

Смежные вопросы