Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] извлечение имени файлов, а также части имени с дописанием

Ответить
Настройки темы
CMD/BAT - [решено] извлечение имени файлов, а также части имени с дописанием

Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Здравствуйте, необходимо сделать не очень легкие манипуляции, можно ли сделать это бат файлом?
Есть папка с файлами.. вот пример имени файлов, которые там лежат

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=конец)

а=
Код: Выделить весь код
http://mysyte.com/wp-content/uploads/
b=
Код: Выделить весь код
_.jpg
данные для указания между чем и чем будет извлекаться имя второго тхт: (x=от, y=до)

x=
Код: Выделить весь код
cort_
y=
Код: Выделить весь код
_google
После приминения бат файла, должо получиться два тхт файла с данным собержанием:

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
2.txt
Код: Выделить весь код
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

 

Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Код: Выделить весь код
@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%%%i%postfix%
    for /f "tokens=2 delims=_" %%j in ("%%i") do 1>>2.txt echo %%j

)

popd
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:15, 19-03-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


спасибо, попробовал, почти все хорошо, только вот что:
для 1ого тхт не игнорируется расширение файла (вместе с точкой)
а для 2ого тхт я не понял куда вводить данные от и до, попробовал, извлекает хорошо, но вот к примеру для файла
Код: Выделить весь код
00005cort_RH-063_A_google.com.wmv
он должен извлеч
Код: Выделить весь код
RH-063_A
а извлекает
Код: Выделить весь код
RH-063

Отправлено: 12:44, 19-03-2015 | #3


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


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


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


спасибо.. да я буду сам задавать, и это будет постоянным... а можно еще сделать, чтобы этот тхт чистился вначале, т.е. сейчас он наполняется постоянно, а нужно чтобы 1ый запуск его наполнил, а потом при втором, наполнил второй запуск, но результатов первого там уже не было

Отправлено: 14:15, 19-03-2015 | #5


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать


Alexander_88, перед первым for добавьте команду 'cd.>1.txt' или 'del 1.txt'
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:10, 19-03-2015 | #6


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Спасибо, попробовал, все работает

Отправлено: 15:17, 19-03-2015 | #7


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


delete

Последний раз редактировалось Alexander_88, 09-05-2015 в 15:52.


Отправлено: 01:45, 09-05-2015 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] извлечение имени файлов, а также части имени с дописанием

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход