Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] извлечение имени файлов, а также части имени с дописанием (http://forum.oszone.net/showthread.php?t=297155)

Alexander_88 19-03-2015 11:37 2484692

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

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

Вот такие серьезные дела :unsure:

Foreigner 19-03-2015 12:15 2484707

Код:

@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


Alexander_88 19-03-2015 12:44 2484714

спасибо, попробовал, почти все хорошо, только вот что:
для 1ого тхт не игнорируется расширение файла (вместе с точкой)
а для 2ого тхт я не понял куда вводить данные от и до, попробовал, извлекает хорошо, но вот к примеру для файла
Код:

00005cort_RH-063_A_google.com.wmv
он должен извлеч
Код:

RH-063_A
а извлекает
Код:

RH-063

Foreigner 19-03-2015 13:32 2484731

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


Alexander_88 19-03-2015 14:15 2484744

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

Foreigner 19-03-2015 15:10 2484752

Alexander_88, перед первым for добавьте команду 'cd.>1.txt' или 'del 1.txt'

Alexander_88 19-03-2015 15:17 2484756

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

Alexander_88 09-05-2015 01:45 2505349

delete


Время: 09:05.

Время: 09:05.
© OSzone.net 2001-