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

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

Ответить
Настройки темы
CMD/BAT - [решено] Батник для раскидывания файлов по папкам

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


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

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


Есть папка с файлами, в имени которых последние 3 символа перед расширением определяют принадлежность. Например:
111_111.txt
222_111.txt
111_222.txt
222_222.txt

Нужен батник, который сможет, проверив файлы в каталоге, скопировать файлы *111.txt в папку 111, а *222.txt в папку 222.

Что нужно будет добавить в батник, если в исходную папку добавятся папки и их тоже надо будет просмотреть?

Отправлено: 09:03, 10-04-2014

 

Ветеран


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

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


Цитата alex_alex:
Нужен батник, который сможет, проверив файлы в каталоге, скопировать файлы *111.txt в папку 111, а *222.txt в папку 222. »
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
for %%i in (*) do (
 if not "%%~fi"=="%~f0" (
  for %%j in ("%%~ni") do (
   set name=%%~j
   set name=!name:~-3!
   if not exist "!name!" (
    md "!name!"
   )
   if not exist "!name!\%%~nxi" (
    copy "%%i" "!name!">nul
   )
  )
 )
)
endlocal
exit /b
.


Цитата alex_alex:
Что нужно будет добавить в батник, если в исходную папку добавятся папки и их тоже надо будет просмотреть? »
Код: Выделить весь код
for /r %%i in (*) do (
.


Пакетный файл поместить в каталог с обрабатываемыми файлами. Нужные папки, еспи они не существуют в данном каталоге, будут в нём созданы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:47, 10-04-2014 | #2



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

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


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


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

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


Цитата Georgio:
if not "%%~fi"=="%~f0" »
Что делает эта строка?

Отправлено: 14:10, 10-04-2014 | #3


Ветеран


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

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


Эта строка кода всего лишь предотвращает создание папки для самого пакетного файла и его копирование в зту папку. Если атрибутировать пакетный файл как скрытый, то данную строку и соответствующую ей закрывающую скобку можно убрать. Если же у Вас все обрабатываемые файлы имеют одно или несколько расширений, отличных от расширения пакетного файла, то это условие также можно убрать, но в наборе указать маски:
Код: Выделить весь код
for %%i in (*.txt *.rtf) do (
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:09, 10-04-2014 | #4


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


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

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


Спасибо огромное за оперативное и качественное решение.

Отправлено: 15:20, 10-04-2014 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания) DIMM2005 Программное обеспечение Windows 36 03-01-2020 16:54
Любой язык - Скрипт для распределения файлов по папкам кучками по n-ому размеру DmitryAnatolich Скриптовые языки администрирования Windows 9 06-05-2013 15:20
CMD/BAT - Батник для сравнения 2-х текстовых файлов по строчно. ppt_ Скриптовые языки администрирования Windows 3 22-04-2013 17:50
CMD/BAT - сортировка файлов по папкам по дате в названии insearches Скриптовые языки администрирования Windows 1 03-02-2013 17:03




 
Переход