Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/48: Рейтинг темы: голосов - 48, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 3
1

Извлечение любого символа из имени файла

24.05.2012, 12:19. Показов 8960. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть папка со множеством файлов вида D10A2412.rtf
Задача отсортировать файлы по папкам с такой иерархией А => 2000 => 400 => 10

собственно столкнулся с проблемой как взять тот или иной символ из имени файла

Буду благодарен если кто-нибудь подскажет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2012, 12:19
Ответы с готовыми решениями:

Извлечение имени файла
Как извлечь имя файла для последующей записи в массив\файл?

Извлечение имени файла и пути из строки
Доброго времени суток!!! Есть строка - полный путь к файлу. Как извлечь из этой строки путь и имя...

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

Выделить из полного имени файла название последнего каталога без символа \
Задано ряд который содержит полное имя файла . Выделить с ряда название последнего каталога без...

4
9 / 9 / 0
Регистрация: 05.05.2011
Сообщений: 66
24.05.2012, 14:45 2
Не совсем понятно, что нужно сделать. Что значит А => 2000 => 400 => 10, и зачем в имени файла искать символы?
0
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 3
24.05.2012, 15:03  [ТС] 3
Это просто пример для наглядности
то есть файл D10A2412.rtf должен переместиться в папку с названием "10" которая в свою очередь находится в папке "400", а та в свою очередь в папке "2000", и все они в папке с названием "А".
Названия для папок берутся как видно из названия файла
Это общая задача

А конкретная проблема заключается в следующем:
В написании я столкнулся с проблемой как мне присвоить переменной значение равное, к примеру 4 символу (в примере это значение "А") в имени файла.

Вот например нашел как отбросить n-количество символов от начала имени

@echo off
setlocal enabledelayedexpansion
set num=4
set myfolder=F:\3\
for /r "%myfolder%" %%i in (*.rtf) do (
set out=%%~nxi
echo "!out:~%num%,255!"
)

то есть после выполнения нашего примера файла примет вид 2412.rtf и в принципе если бы мне подсказали как по аналогии одновременно также отбросить с конца n-символов, то дальше разобрался бы сам

PS откинуть расширение тоже не проблема воспользовавшись for /f "delims=. tokens=2"
PPS вероятно есть более простой и изящный способ, но мне он не встретился на просторах инета
0
9 / 9 / 0
Регистрация: 05.05.2011
Сообщений: 66
24.05.2012, 16:36 4
Такие вещи, лучше делать через обработчик-"функцию" с использованием xcopy (для создания каталогов). В вашем примере так:
Код
@echo off
setlocal enableextensions enabledelayedexpansion
set "MYPATH=F:\3\"
 
for /f "tokens=*" %%i in ('dir /b/s/a-d "%MYPATH%" ^| findstr /e /i ".rtf"') do  (call :p "%%~NXi")
endlocal
exit
:p
rem 'выводим только имя файла
set filename=%~n1
rem 'переменная каталога А          
set n=%filename:~3,1% 
rem 'переменная каталога 2412   
set d=%filename:~4,4%    
xcopy /r/i/y %MYPATH%%~1 "%MYPATH%\%n%\%d%\"
комментарии естественно убрать. дальше, по аналогии, думаю разберетесь с вложением каталогов через переменные
2
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 3
25.05.2012, 13:20  [ТС] 5
Smith&Wesson огромное спасибо все получилось
0
25.05.2012, 13:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2012, 13:20
Помогаю со студенческими работами здесь

Вывод на экран пути и имени файла без расширения без одного символа
Вывод на экран пути и имя файла -1 символ без расширения Не передает ARG значение. Что я делаю...

Как сделать проверку на наличие похожего имени файла и запрос нового имени файла?
При загрузке изображения присваивается имя foto.jpg. Вопрос, как сделать проверку на то что фото с...

Сделать проверку на наличие похожего имени файла и запрос нового имени файла
Пользователь задает имя для создания файла. Вопрос, как сделать проверку на наличие похожего имени...

Извлечение нужного символа из строки
Подскажите, пожалуйста, как можно из строки вида "354327U698494" извлечь символ, находящийся в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru