автоматизация выделения и копирования

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
Nnfog
Сообщения: 1
Зарегистрирован: Ср мар 04, 2009 15:50

автоматизация выделения и копирования

Сообщение Nnfog »

граждане, поможите плз с такой задачей:
есть папка. в ней 50 пустых папок с разными названиями и 200 файлов 01.txt 02.txt 03.txt 04.txt и тд. надо скопировать по 4 файла каждую папку по порядку. как нить можно это автоматизировать? допустим в левой панели выделяю все папки куда нужно скопировать, а в правой все файлы и скрипт все это по порядку распределяет..
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Жаль, что папки с разными названиями. Чем ждать, пока кто-то напишет скрипт, давно бы сам написал батник. Например, так:

Код: Выделить всё

for %%a in (1 2 3 4) do copy 0%%a.txt c:\First_folder\*.*
for %%b in (5 6 7 8) do copy 0%%b.txt c:\Second_folder\*.*
Писал навскидку. НЕ ТЕСТИЛ!
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Nnfog
Скопируй все нужные файлы и папки (не должно быть лишних) в отдельную папку. В неё же помести этот .cmd и запусти его.
Можно провернуть это и в существующей папке, но имеющиеся файлы будут перемещены.
Также раскидает и файлы с именами из букв.

------------------------------------------------ 4_by_dir.cmd ------------------------------------------------

Код: Выделить всё

@echo off&chcp 1251>nul

echo Перемещает по 4 .txt файла из текущей в каждую вложенную папку по порядку.
rem Автор: Tol!k
rem Для правильной сортировки порядковые имена должны быть равной длины, то есть:
rem 001.txt
rem 010.txt
rem 100.txt

setlocal enableextensions enabledelayedexpansion
for /F "delims=" %%c in ('dir /AD /B/ON') do (
set i=0
for /F "delims=" %%a in ('dir *.txt /B/ON') do (
if !i! LSS 4 (move "%%a" "%%c\"&set /A i=i+1)
)
)
------------------------------------------------ 4_by_dir.cmd ------------------------------------------------
Ответить