Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 15
1

Раскидать файлы по папкам CMD/BAT

20.09.2018, 15:40. Показов 1110. Ответов 6
Метки нет (Все метки)

Здравствуйте, Уважаемые. Помогите новичку.

Есть два каталога D:\KAT1\FOTO и D:\KAT2\IN

В каталог D:\KAT2\IN периодически выгружаются файлы вида
22_houhvb_20180904_1.jpg
77513_nfjhuif_20180812_2.jpg

Необходимо раскидать файлы по каталогам
D:\KAT1\FOTO\22
\77513
Если каталога нет, создать с именем номера файла до первого знака "_"
(Вложенных папок в исходных каталогах нет)

Заранее благодарю за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2018, 15:40
Ответы с готовыми решениями:

Разложить файлы по папкам с именами, являющимися частью имени файла - CMD/BAT
Привет. Помогите пожалуйста!!! Есть WIN7 папка F:\PIC в ней 4000 фото =) Файлы:...

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

Раскидать файлы по папкам, соответствующим именам файлов
Задача: есть папка в которой свалены документы с почты. Постоянно подступают новые файлы и хочется...

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

6
3857 / 1946 / 621
Регистрация: 26.04.2015
Сообщений: 6,343
20.09.2018, 23:33 2
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set "d1=D:\KAT2\IN"
set "d2=D:\KAT1\FOTO"
 
pushd "%d1%"
 for /f "tokens=1* delims=_" %%a in ('dir /a-d/b "*.jpg"') do call :mv "%%a_%%b" "%%a"
popd
pause& exit
 
:mv
 if not exist "%d2%\%~2" md "%d2%\%~2"
 >nul move "%~1" "%d2%\%~2"
exit /b
2
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 15
21.09.2018, 10:24  [ТС] 3
Благодарствую. Работает.
Как бы еще прикрутить лог с дата/время, создание директории, перемещение файлов (лог и batch файл размещены в каталоге set "d3=D:\FIDO")?
0
3857 / 1946 / 621
Регистрация: 26.04.2015
Сообщений: 6,343
21.09.2018, 11:05 4
Windows Batch file
1
2
3
4
5
6
7
8
...
:mv
 setlocal enabledelayedexpansion
  if not exist "%d2%\%~2" md "%d2%\%~2"
  >nul move "%~1" "%d2%\%~2"
  >>log.log (echo [!date!_!time:~0,8!] файл: "%~1" перемещен в директорию: "%d2%\%~2")
 endlocal
exit /b
0
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 15
21.09.2018, 11:58  [ТС] 5
чтобы записать в нужной кодировке (866) лог и сохранить в нужную директорию d3, так правильно будет?
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set "d1=D:\KAT2\IN"
set "d2=D:\KAT1\FOTO"
set "d3=D:\FIDO"
...
 :mv
 chcp 866 1>nul 
 setlocal enabledelayedexpansion
  if not exist "%d2%\%~2" md "%d2%\%~2"
  >nul move "%~1" "%d2%\%~2"
  >>%d3%\log.log (echo [!date!_!time:~0,8!] файл: "%~1" перемещен в директорию: "%d2%\%~2")
 endlocal
exit /b
0
3857 / 1946 / 621
Регистрация: 26.04.2015
Сообщений: 6,343
22.09.2018, 03:09 6
файл log.log создать и сохранить в 866 и код bat в 866,
тогда строка: chcp 866 1>nul не нужна, а вот замена штатного виндового блокнота для действий выше, как раз нужна
а если делаете все в 1251, то нужна строка: >nul chcp 1251, но писать ее надо вначале, после @echo ff
0
3857 / 1946 / 621
Регистрация: 26.04.2015
Сообщений: 6,343
22.09.2018, 16:11 7
а если кириллицы нет ни в путях ни в именах и инфу в лог будете заносить на en, то можете не париться с кодировками.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2018, 16:11

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Не запускаются ни bat, ни cmd файлы...
Стоит WinXP SP3. В общем захожу в любой bat и cmd файл, а мне все время пишет: Windows не удалось...

Раскидать по папкам с переименованием файлов по маске
Добрый день. Помогите пожалуйста. Необходимо общую кучу файлов типа yymmdd_000_имяфайла.xls...

Batch (CMD/BAT) несколько заданий на CMD/BAT
1.Напишите bat файл на диске с ,который будет искать на всех дисках файлы с расширением...

Как запустить bat файл командой cmd /k передав bat файлу дополнительные аргументы
Как передать bat файлу, запускаемому через cmd /k аргументы? Это был первый вопрос, а теперь вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.