Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
r1sh
0 / 0 / 0
Регистрация: 09.02.2015
Сообщений: 29
1

Группировка файлов в каталогах

09.02.2015, 15:47. Просмотров 868. Ответов 3
Метки нет (Все метки)

Всем привет!

Есть структура папок:

archive
|
+2014-Apr-01
|
+2014-Apr-02
|
+2014-Apr-03


Нужно все файлы в папках переместить в каталог соответcтвующий формату 2014-Apr

Я написал скрипт:

Код
chcp 1251
setlocal enabledelayedexpansion
set input=d:\arch
set output=d:\test
set h="string"
mkdir %output%\2014
mkdir %output%\2014\2014-Jan
mkdir %output%\2014\2014-Feb
mkdir %output%\2014\2014-Mar
mkdir %output%\2014\2014-Apr
mkdir %output%\2014\2014-May
mkdir %output%\2014\2014-Jun
mkdir %output%\2014\2014-Jul
mkdir %output%\2014\2014-Aug
mkdir %output%\2014\2014-Sep
mkdir %output%\2014\2014-Oct
mkdir %output%\2014\2014-Nov
mkdir %output%\2014\2014-Dec
for /f %%i in ('dir /b %input%\') do (
for /f %%j in ('dir /b %input%\%%i\"#msgs"\') do (
ren %%j %%i_%%j
)
set h=%%i
move %input%\%%i\#msgs\* %output%\2014\%h:~0,8%\
)
проблема в том, что значение переменной h после set h=%%i все равно остается "string"

Подскажите пожалуйста с чем связана проблема?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2015, 15:47
Ответы с готовыми решениями:

Поиск новейших версий файлов из одноимённых файлов, находящихся в двух каталогах, и перенос найденных в третий
Здравствуйте. Возникла необходимость в создании кода на batch, который делает...

Обработка pdf файлов в каталогах с подкаталогами
К примеру в каталоге c:\dir1 и его подкаталогах находятся pdf файлы. Их...

Поиск файлов в каталогах, проверка в ахивных дерриториях
Доброго времени суток! Помогите написать bat ничек, для следующих целей: -...

Удаление файлов нулевого размера в каталогах и подкаталогах
Добрый вечер. Нужна помощь в корректировке маленького скрипта: @Echo Off...

Поиск и вывод строк из файлов в нескольких каталогах
Всем привет! Есть 23 каталога (6501-6523), в каждом каталоге есть...

3
ComSpec
3407 / 1951 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
09.02.2015, 16:08 2
Лучший ответ Сообщение было отмечено r1sh как решение

Решение

Bash
24
move %input%\%%i\#msgs\* %output%\2014\!h:~0,8!\
1
r1sh
0 / 0 / 0
Регистрация: 09.02.2015
Сообщений: 29
09.02.2015, 16:50  [ТС] 3
спасибо заработало!!! блин а почему??? о_О
0
ComSpec
3407 / 1951 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
09.02.2015, 17:09 4
Лучший ответ Сообщение было отмечено r1sh как решение

Решение

Цитата Сообщение от r1sh Посмотреть сообщение
а почему???

Потому что переменные, задаваемые внутри цикла, должны расширяться не с помощью символов процента, а с помощью восклицательных знаков при обязательном включении отложенного расширения переменных ("setlocal enabledelayedexpansion"), что у Вас, кстати, в коде есть.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2015, 17:09

Найти и вывести имена одинаковых файлов в двух каталогах
Здравствуйте! Помогите пожалуйста решить такую задачу: Никак не могу...

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

Список всех файлов в каталогах, пути к которым указаны в параметрах
Написать bat-файл, который бы выводил на экран список всех файлов в каталогах,...


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

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

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