Flasher

|
Posted: Tue May 05, 2015 17:31 Post subject: |
|
|
sa
Ясно. Я читал раньше про пересортицу на FAT-ах, в сети хватает информации и на руборде об этом речи велись.
В общем, если очень надо, то вот
 вариант с сортировкой в т. ч. для проблемных ФС: Code: | '====================================================================
' Именовать файлы нумерацией в структуре активного каталога
' Условие: путь запуска - пустой
' Параметры (необязательные):
' 1) <фильтр-список расширений> (по умолчанию - все)
' 2) <наименьшее число в базовом имени файлов, подлежащих именованию>
' (по умолчанию - 0)
' Примеры: *.jpg;*.jpeg | "" 1000
'====================================================================
With WScript.Arguments
C = .Count : Min = 0 : If C = 2 Then Min = .Item(1)
If C Then If .Item(0) <> "" Then Filt = .Item(0) Else Filt = "*.*" End if
End With : Set Dict = CreateObject("Scripting.Dictionary")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ShA = CreateObject("Shell.Application")
Set SC = CreateObject("ScriptControl")
With CreateObject("WScript.Shell")
CD = .CurrentDirectory
If CD = FSO.GetParentFolderName(WScript.ScriptFullName) Then WScript.Quit
SC.Language = "JScript" : SC.AddCode("function VBSort(array){return(new VBArray"&_
"(array).toArray().sort(function(a,b){return parseInt(a,10)-parseInt(b,10)}));}")
ForFolder CD : .SendKeys "^R"
End With
Sub ForFolder(Path)
Set Items = ShA.NameSpace(Path).Items
Items.Filter 64, Filt : For Each F in Items : Dict.Add F, "" : Next
For Each F in SC.Run("VBSort", Dict.Keys)
Ext = FSO.GetExtensionName(F) : If Ext <> "" Then Ext = "." & Ext
i = i + 1 : N = i & Ext : BN = FSO.GetBaseName(F)
If IsNumeric(BN) Then
If CLng(BN) >= CLng(Min) Then
While FSO.FileExists(Path & "\" & N) Or FSO.FolderExists(Path & "\" & N)
i = i + 1 : N = i & Ext
Wend : F.Name = N
End If
ElseIf Not FSO.FileExists(Path & "\" & N) Then F.Name = N
End If
Next : Dict.RemoveAll : Items.Filter 160, "*"
For Each Fold in Items : ForFolder Fold.Path : Next
End Sub |
a-dasler wrote: | Меня устроил первый вариант скрипта. Ведь в папках и подпапках нигде не было файла 2.*. | ОК. Я это уже понял. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Thu May 07, 2015 16:26; edited 4 times in total |
|