скрипт выдаёт предлагаемое имя папки в редактируемом виде, Вы можете вручную убрать лишние символы, или вбить на совершенно другое название.к названию подмешается лишнее
Автоматическое создание папок
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Расшифровка: Создание папки в неактивной панели (с приращением к числовому названию существующих папок n+1) и перемещение в неё выделенных файлов.zlodei1988 писал(а):В тотлике есть 2 окна! нужно на одной панели выделить файлы, нажать f6, и чтоб эти файлы полетели в папку, имя которой создастся автоматом, и назовется последующим именем предыдущей папки! например, в левом окне есть папка 1327, переходим в правое окно, выделяем файлы, нажимаем f6, и эти файлы залетели в создавшуюся папку 1328!!! заранее спасибо за все варианты!!!
Для именования создаваемой папки можно брать числовой максимум в названиях папок неактивной панели и прибавлять единицу (1234, 1236, ..., Max, 1267), а можно забивать пустоты (1234, 1235, 1236, ... Max).
Что больше подходит?
Одноимённая с текущей закрытая тема, где приводился процитированный в предыдущем посте первый вариант условий, по итогам обсуждения в привате ныне ликвидирована.
Вот как это выглядит в настоящее время:
2. Предыдущая папка — это, разумеется, та существующая в целевой панели папка, у которой в имени самое большое число.
Вот как это выглядит в настоящее время:
1. Число цифр в имени папки произвольное, но не более 4.Итак, в исходной панели есть файлы(приблизительно тысяч 6 подряд), надо их по 4-10 файлов переместить в целевую панель с таким учетом, чтоб создать самому одну папку, назвать ее например 123, и после этого, опять в исходной панели выделить несколько файлов, и с помощью кнопки или батника они должны переместиться в папку, которая создастся автоматически с именем (123+1) 124 и принять их в себя, и так далее! выделяем файлы, нажимаем кнопку, создается папка, которая забирает имя у предыдущей папки в целевой панели, плюсует 1, и все принимает в себя!
2. Предыдущая папка — это, разумеется, та существующая в целевой панели папка, у которой в имени самое большое число.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Вот эта фраза напрочь сбила. Кому здесь какая разница, по сколько файлов кто захочет перемещать? Если речь идёт именно о разбиении на части, то это вообще в другую активную тему. И что значит "создать самому"? Т.е. без помощи скрипта? В общем, в начале было и то яснее. Мою формулировку можно было хотя бы подтвердить или опровергнуть вместо переносов разговора в приват, да ещё и не со мной...надо их по 4-10 файлов переместить в целевую панель с таким учетом, чтоб создать самому одну папку
2. Насчёт "разумеется" я бы поспорил, п.ч. подавляющее большинство скриптов и батников с приращением, приведённых на этом форуме, именно забивает пустоты.
-
zlodei1988
- Сообщения: 10
- Зарегистрирован: Ср сен 28, 2011 21:10
А я где-то про 1 писал?zlodei1988 писал(а):Дело в том, нужно именно задать первую папку с именем не 1, а 3150
Добавлено: Я правильно понимаю, что под "первой" понимается вообще любая папка, впервые оказавшаяся в месте назначения? Или первая - эта та, которая впервые создана с помощью скрипта в конкретном месте?
Какую пустую папку? Ту, которая создаётся? Как же она может быть пустой, если в неё переместятся файлы?zlodei1988 писал(а):потом пустую папку не сложно удалить!
На остальное отвечать будем? В общем, мне нужно увидеть все действия скрипта (не самостоятельные) попунктно.
Код: Выделить всё
@echo off &setlocal enableextensions &chcp 1251 >nul
rem Перемещение выделенного в следующую по порядку папку
rem Пример параметров: "%L" "%T"
rem Автор: Tol!k
call :ddd %2
del /q "%temp%\ddd"
if "%n%"=="" set "n=001"
if "%p%"=="2" set "n=1%n%"
set "trg=%~2%n%"
md "%trg%" ||(echo/Не удалось создать следующую папку&pause&exit/b)
for /f "usebackq delims=" %%f in ("%~1") do call :m "%%f" "%%f."
exit /b
:m
set "name=%~1" &title %1
if "%name:~-1%"=="\" (
xcopy "%name:~0,-1%" "%trg%\%~nx2" /i /s/e /k/r/h >nul &&rd /s /q %1
) else (
echo f|xcopy %1 "%trg%" /k/r/h >nul &&(attrib -h -r -s %1 &del /q %1)
)
goto :eof
:ddd
dir /b/ad/o-n %1 |findstr /rbec:[0-9]* >"%temp%\ddd"
for /f "delims=" %%d in (
'findstr/rxc:...... "%temp%\ddd"^&findstr/rxc:..... "%temp%\ddd"^&findstr/rxc:.... "%temp%\ddd"^&findstr/rxc:... "%temp%\ddd"^&findstr/rxc:.. "%temp%\ddd"^&findstr/rxc:. "%temp%\ddd"'
) do (set /a n=1%%d+1 &call set "p=%%n:~0,1%%" &call set "n=%%n:~1%%" &exit /b)
goto :eof
Проблемы индейцев шерифа не е... Сделал так, как понял запрос.
Первая папка задаётся в строке if "%n%"=="" set "n=001"
Пустоты не заполняются. Max номер 1000000
Про разбиение на части первоначально не было, да и последующее уточнение я понял как ручное выделение
Первая папка задаётся в строке if "%n%"=="" set "n=001"
Пустоты не заполняются. Max номер 1000000
Про разбиение на части первоначально не было, да и последующее уточнение я понял как ручное выделение
Последний раз редактировалось Tol!k Чт сен 29, 2011 23:53, всего редактировалось 1 раз.