Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос по N фалов в каждую папку созданную из списка.

Ответить
Настройки темы
CMD/BAT - Перенос по N фалов в каждую папку созданную из списка.

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток.
Прошу помощи.
Есть такая практическая задача. Существует папка A с файлами (jpg). они отсортированы по времени их создания. Есть файл name.txt со списком имен.
Количество файлов в 3 раза больше чем имен.
Необходимо создать папку (первую из списка) и переместить (не копировать) в нее 3 первых файла из папки А, потом создать папку (вторую из списка) и переместить туда следующие 3 файла(хотя на тот момент по идее они уже будут первые).
И так до тех пор, пока не закончатся все файлы (соответственно и названия в списке файла name.txt)

Примечание. Необходимо строго соблюдать очередность: самое первое название папки из списка, соответствует первым трем (по дате создания) файлам

Отправлено: 11:14, 16-02-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Вопросы:
  1. Файлы сортируем по возрастанию или убыванию даты создания? То есть, какие должны быть у нас в начале — более новые или более старые?
  2. Список имён в файле «name.txt» содержит относительные или абсолютные имена папок?
  3. Если относительные — то относительно чего: текущего каталога или исходного каталога?
Вот болванка:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\Мои проекты\38
set sMask=*.jpg
set sFolderList=C:\Мои проекты\38\name.txt

if exist "%sSourceFolder%\." (
	pushd "%sSourceFolder%"
	
	if exist "%sFolderList%" (
		for /f "usebackq delims=" %%i in ("%sFolderList%") do (
			2>nul md "%%~i"
			
			for /f "usebackq tokens=1* delims=[]" %%j in (
				`2^>nul dir /b /a:-d /o:d /t:c "%sSourceFolder%\%sMask%" ^| find.exe /n /v ""`
			) do if %%j leq 3 >nul move "%%~k" "%%~i\"
		)
	) else (
		echo Can't find folder list file [%sFolderList%].
		exit /b 2
	)
	
	popd
) else (
	echo Can't find source folder [%sSourceFolder%].
	exit /b 1
)

endlocal
exit /b 0

для условий:
  1. Файлы сортируются по возрастанию, т.е. более старые — в начале.
  2. Список имён содержит относительные имена папок.
  3. Имена считаются заданными относительно исходной папки.

Отправлено: 05:04, 17-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос по N фалов в каждую папку созданную из списка.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Перемещение файлов в только, что созданную папку из контекстного меню. OSArev Скриптовые языки администрирования Windows 15 09-06-2024 00:02
CMD/BAT - [решено] Поиск фалов по содержимому и копирование найденных файлов в папку Randow Скриптовые языки администрирования Windows 6 05-05-2015 22:31
CMD/BAT - Код для создания и копирования в созданную папку ITagir Скриптовые языки администрирования Windows 0 21-04-2015 17:15
CMD/BAT - Перенос файлов из однойпапки в структурную папку miketisch Скриптовые языки администрирования Windows 0 09-02-2012 10:06
CMD/BAT - [решено] Выбор файлов из списка с последующим копированием и переносом в другую папку yaoleg2 Скриптовые языки администрирования Windows 10 04-11-2011 01:28




 
Переход