Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Перемещение нужного количества файлов по папкам 
Author Message
MVV



PostPosted: Tue Sep 07, 2010 10:15    Post subject: Reply with quote

А я батник написал, извратился. Smile

Code:
@echo off

if -%1==- echo Use %%L as first parameter [and number of files in subdirs as second]! & pause & goto :EOF

setlocal

set fileno=0
set fldrsz=%2
if -%fldrsz%==- set fldrsz=50

for /F "usebackq delims=" %%f in (%1) do call :do_action "%%f"

echo.
echo Moved %fileno% files.
pause

goto :EOF


:do_action

set /a fldrno=1000000000 + fileno / fldrsz
set fldrnm=%fldrno:~-5%

echo Moving %1 to subfolder %fldrnm%...
if not exist %fldrnm% md %fldrnm%
move %1 %fldrnm%

set /a fileno=fileno + 1

Первый параметр - %L, второй - число файлов в создаваемых подпапках. Если не задано, используется 50. Папка запуска должна быть текущей (т.е. поле рабочей папки пусто).

При желании число нулей в именах папок можно изменить, увеличив или уменьшив цифру в строке set fldrnm=%fldrno:~-5% - но не следует делать ее больше, чем нулей в числе, указанном в строке set /a fldrno=1000000000 + fileno / fldrsz, а также не нужно делать ее меньше, чем хватит для имен папок - тогда имена папок будут повторяться из-за отбрасывания высших разрядов.

Но похоже, тут сложности с русскими буквами в именах.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group