|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] извлечение имени файлов, а также части имени с дописанием |
|
CMD/BAT - [решено] извлечение имени файлов, а также части имени с дописанием
|
Ветеран Сообщения: 546 |
Здравствуйте, необходимо сделать не очень легкие манипуляции, можно ли сделать это бат файлом?
Есть папка с файлами.. вот пример имени файлов, которые там лежат 00001cort_SVD-934_google.com.avi 00002cort_PRDK-031_google.com.avi 00003cort_THRI-131_google.com.mp4 00004cort_ERFH-020_google.com.wmv 00005cort_RH-063_A_google.com.wmv 00006cort_WQ-003_B_google.com.wmv 00007cort_GDJ-351_google.com.wmv 00008cort_VHE-321_google.com.mp4 00009cort_JTW-173_google.com.wmv 00010cort_FGUW-181_google.com.wmv 00011cort_QX-141_A_google.com.wmv 00012cort_YUR-141_B_google.com.wmv 00013cort_GBHJ-320_google.com.mp4 00014cort_UWHF-337_google.com.mp4 а также многие другие файлы, не похожие на эти названия. Необходимо, сделать два тхт файла (путь к ним я сам задаю), в которых будет записано в столбик имена этих файлов, с некоторыми переделками, притом только тех файлов, типы которых я привел, а не всех. Отличие нужных файлов в том, что они все начинаются с нумерации которая представлена в примере. Теперь подробнее о том как необходимо извлеч. В первый тхт извлекается имя файла, при этом игнорируя его расширение, + в начало и конец файла добавляется то, что я укажу (2 переменных) Во второй тхт извлекается, куски имени файла, которые находятся между одними кусками текста имени файла и другими (я их должен буду указать) Вот пример работы над папкой с файлами, которыми я указал выше: Данные мной: путь к 1му тхт: C:\work\1.txt путь ко 2му txt: C:\work\2.txt данные для вставки в начало и конец первого тхт: (а=начало, b=конец) а= b= данные для указания между чем и чем будет извлекаться имя второго тхт: (x=от, y=до) x= y= После приминения бат файла, должо получиться два тхт файла с данным собержанием: 1.тхт http://mysyte.com/wp-content/uploads/00001cort_SVD-934_google.com_.jpg http://mysyte.com/wp-content/uploads/00002cort_PRDK-031_google.com_.jpg http://mysyte.com/wp-content/uploads/00003cort_THRI-131_google.com_.jpg http://mysyte.com/wp-content/uploads/00004cort_ERFH-020_google.com_.jpg http://mysyte.com/wp-content/uploads/00005cort_RH-063_A_google.com_.jpg http://mysyte.com/wp-content/uploads/00006cort_WQ-003_B_google.com_.jpg http://mysyte.com/wp-content/uploads/00007cort_GDJ-351_google.com_.jpg http://mysyte.com/wp-content/uploads/00008cort_VHE-321_google.com_.jpg http://mysyte.com/wp-content/uploads/00009cort_JTW-173_google.com_.jpg http://mysyte.com/wp-content/uploads/00010cort_FGUW-181_google.com_.jpg http://mysyte.com/wp-content/uploads/00011cort_QX-141_A_google.com_.jpg http://mysyte.com/wp-content/uploads/00012cort_YUR-141_B_google.com_.jpg http://mysyte.com/wp-content/uploads/00013cort_GBHJ-320_google.com_.jpg http://mysyte.com/wp-content/uploads/00014cort_UWHF-337_google.com_.jpg SVD-934 PRDK-031 THRI-131 ERFH-020 RH-063_A WQ-003_B GDJ-351 VHE-321 JTW-173 FGUW-181 QX-141_A YUR-141_B 13GBHJ-320 14UWHF-337 ![]() |
|
Отправлено: 11:37, 19-03-2015 |
Ветеран Сообщения: 1758
|
|
Отправлено: 12:15, 19-03-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать спасибо, попробовал, почти все хорошо, только вот что:
для 1ого тхт не игнорируется расширение файла (вместе с точкой) а для 2ого тхт я не понял куда вводить данные от и до, попробовал, извлекает хорошо, но вот к примеру для файла он должен извлеч а извлекает |
Отправлено: 12:44, 19-03-2015 | #3 |
Ветеран Сообщения: 1758
|
Alexander_88, Тогда так, но при условии, что google.com это неизменяемая часть, иначе по каким критериям определять нужную составную часть названия?
@echo off setlocal pushd "C:\Folder" set "prefix=http://mysyte.com/wp-content/uploads/" set "postfix=_.jpg" for %%i in (*cort_*) do ( 1>>1.txt echo %prefix%%%~ni%postfix% for /f "tokens=2,3 delims=_" %%j in ("%%i") do ( if not "%%k"=="google.com%%~xi" ( 1>>2.txt echo %%j_%%k ) else ( 1>>2.txt echo %%j ))) popd |
Отправлено: 13:32, 19-03-2015 | #4 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать спасибо.. да я буду сам задавать, и это будет постоянным... а можно еще сделать, чтобы этот тхт чистился вначале, т.е. сейчас он наполняется постоянно, а нужно чтобы 1ый запуск его наполнил, а потом при втором, наполнил второй запуск, но результатов первого там уже не было
|
|
Отправлено: 14:15, 19-03-2015 | #5 |
Ветеран Сообщения: 1758
|
Alexander_88, перед первым for добавьте команду 'cd.>1.txt' или 'del 1.txt'
|
Отправлено: 15:10, 19-03-2015 | #6 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать Спасибо, попробовал, все работает
![]() |
Отправлено: 15:17, 19-03-2015 | #7 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать delete
|
Последний раз редактировалось Alexander_88, 09-05-2015 в 15:52. Отправлено: 01:45, 09-05-2015 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Найти файл по части имени | bombording | Скриптовые языки администрирования Windows | 1 | 04-04-2014 10:52 | |
CMD/BAT - перемещение файлов в каталог созданный из части имени файла | surrender1 | Скриптовые языки администрирования Windows | 9 | 10-10-2013 14:42 | |
CMD/BAT - [решено] Сравнение файлов по части имени | sampir | Скриптовые языки администрирования Windows | 2 | 18-11-2012 19:57 | |
CMD/BAT - Удаление старых файлов по имени файлов | Bиктор | Скриптовые языки администрирования Windows | 1 | 19-04-2010 03:37 | |
Ошибка - Каракули в реестре "Синтаксическая ошибка в имени файла,имени папки или метке тома" | permas | Microsoft Windows 2000/XP | 2 | 20-02-2010 19:30 |
|