0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 3
|
|
1 | |
Извлечение любого символа из имени файла24.05.2012, 12:19. Показов 8960. Ответов 4
Метки нет (Все метки)
Есть папка со множеством файлов вида D10A2412.rtf
Задача отсортировать файлы по папкам с такой иерархией А => 2000 => 400 => 10 собственно столкнулся с проблемой как взять тот или иной символ из имени файла Буду благодарен если кто-нибудь подскажет
0
|
24.05.2012, 12:19 | |
Ответы с готовыми решениями:
4
Извлечение имени файла Извлечение имени файла и пути из строки При появлении в ячейке файла Excel эмпортируемого значения (любого символа), необходимо открыть определенный файл Выделить из полного имени файла название последнего каталога без символа \ |
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 | |
25.05.2012, 13:20 | |
Помогаю со студенческими работами здесь
5
Вывод на экран пути и имени файла без расширения без одного символа Как сделать проверку на наличие похожего имени файла и запрос нового имени файла? Сделать проверку на наличие похожего имени файла и запрос нового имени файла Извлечение нужного символа из строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |