Flasher

|
Posted: Thu Nov 30, 2017 03:42 Post subject: |
|
|
Ostap Fender wrote: | новая версия называется inNKX 1.2.1. и он именно для Тотал. | В делах скриптовых архиваторным плагинам особо ничего не светит. Поэтому нужна утилита.
Ostap Fender wrote: | архивы tar?-я не знаю, выходной формат .nkx | Так приложите парочку файликов. Как я узнаю?
Ostap Fender wrote: | если же Вы знаете как сразу виртуально раскидать файлы на какие то облачные подкаталоги, которых физически не будет, то плагин может паковать и в несколько потоков, при этом путями и сохранением структуры можно пренебречь. Хотя лично я это не представляю. Ведь плагину необходимы объекты упаковки. | Так вроде перемещение нужно было. А виртуальный вариант - это точки повторной обработки, симлинки или жёсткие ссылки. К перемещению это не относится, так как нужны источники. Но при создании архивов и это может не понадобиться, если упаковщик позволяет добавлять в архив файлы в заданные подпапки. Только в данном случае уже я не представляю, какой смысл в пренебрежении ими.
 А пока быстро набросал предварительный вариант с обычным перемещением: Code: | '================================ VBS =================================
' Перемещение выбранных файлов в создаваемые папки с номерными именами,
' разбивая их по группам в рамках заданного лимита суммарного размера
' Параметры: %WL "<путь получателя>" <верхний лимит размера папок в Мб>
' Ключ добавки цепочки подкаталогов: /chain:<цепочка>
' Ключ смены начала счётчика с единицы на двойку: /2
' Примеры: %WL "%T" 100
' %WL "%P" 1000 /2
' %WL "%T" 2000 /chain:NewFolder
' %WL "%P" 4000 /chain:"Folder 1\Folder 2\Folder 3" /2
Option Explicit
'========= Минимальное число цифр в именах создаваемых папок ==========
Const Num = 1
'======================================================================
Dim C, i, Chain, List, Targ, Sum, FSO, oDisk, F, Size, Folder
With WSH.Arguments
If .UnNamed.Count = 0 Then WSH.Quit
If .Named.Exists("2") Then i = 2 Else i = 1
List = .Item(0) : Targ = .Item(1) : Sum = .Item(2) * 1048576
If .Named.Exists("chain") Then Chain = "\" & .Named("chain")
End With: Set FSO = CreateObject("Scripting.FileSystemObject")
Set oDisk = CreateObject("Shell.Application").NameSpace(FSO.GetDriveName(Targ))
With FSO.OpenTextFile(List,,,-1)
Do : F = Trim(.ReadLine)
If FSO.FileExists(F) Then
Set F = FSO.GetFile(F) : Size = Size + F.Size
If Size >= Sum Then Size = F.Size : i = i + 1
If Size = F.Size Then _
Folder = FSO.BuildPath(Targ, Right(String(Num - 1,"0") &_
i, Num)) & Chain : oDisk.NewFolder Mid(Folder, 4)
F.Move Folder & "\"
End If
Loop Until .AtEndOfStream : .Close
End With
MsgBox Space(18) & " Выполнено!", 4160,_
" Полимитное перемещение файлов в номерные папки " |
P. S.: Очень советую не игнорировать ЦУ. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|