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

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

Ответить
Настройки темы
CMD/BAT - Сортировка файлов

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


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

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


Добрый день всем. Может кто подскажет, возможно ли средствами CMD реализовать следующий алгоритм:

Определим переменные Шаблон1, Шаблон2.... ШаблонN
Найти все файлы по расширению *.abc в папке "C\...\Конкретная_папка"
Пока Получить файл = 1 Цикл
Если find "Шаблон1" в текущем файле = 1 тогда Move текущий файл в папку "C\...\Шаблон1"
Если find "Шаблон2" в текущем файле = 1 тогда Move текущий файл в папку "C\...\Шаблон2"
............
Если find "ШаблонN" в текущем файле = 1 тогда Move текущий файл в папку "C\...\ШаблонN"
Конец цикла

Иными словами надо переместить файл из общей папки в папку, название которой содержится в текущем файле
Список возможных папок назначения (Шаблон) известен и немногочисленен (5-8)

Отправлено: 22:32, 27-03-2009

 

Аватара для Maza Faka

Ветеран


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

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


kt626
Пример:
Код: Выделить весь код
@Echo Off

Set Source=C:\Test
Set Dest=C:
Set Ext=txt

For /R %Source% %%A In (*.%Ext%) Do (
   MD "%Dest%\%%~nA">Nul 2>&1
   Move "%%A" "%Dest%\%%~nA"
)

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 10:05, 28-03-2009 | #2



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

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



Moderator


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

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


kt626, по вашему алгоритму:
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set Templates=Template1 Template2 Template3
Set FileMask=*.abc
Set Folder=C:\MyFolder

For /F "Delims=" %%I In ('Dir /A-D /B "%Folder%\%FileMask%" 2^>nul') Do (
  Set FN=%%~nxI
  For %%K In (%Templates%) Do (
    If "!FN!" Neq "!FN:%%K=!" (
      MD "C:\%%K" 2>nul
      Move "%%I" "C:\%%K"
    )
  )
)
Если нужно учитывать вложенные папки, добавить опцию /S в команду Dir (но тогда придется разбираться с возможными коллизиями в случае одинаковых имен файлов).

Ограничение: в именах не должно быть символа ! (восклицательного знака).

Последний раз редактировалось Petya V4sechkin, 28-03-2009 в 11:17.


Отправлено: 10:47, 28-03-2009 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Сортировка файлов и папок в Проводнике shesmu Microsoft Windows 2000/XP 1 23-08-2009 02:39
VBS/WSH/JS - [решено] VBS/WSH. Сортировка файлов по дате. rancid Скриптовые языки администрирования Windows 3 23-07-2009 06:38
Сортировка... skeletor Хочу все знать 14 16-03-2007 18:32
сортировка чисел slaine Вебмастеру 12 18-02-2006 20:17
Сортировка в Exсel Evita Хочу все знать 2 11-01-2006 14:24




 
Переход