Компьютерный форум 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=351089)

бомбино 23-04-2022 16:32 2983689

Умное переименование
 
Привет! Нужно немного необычное переименование всех файлов в папке, через cmd:

1172642 - 1280x720 1980K.ts
1173926- 1280x720 1980K.ts
1174904 1280x720 2340K.ts
1174873 - 1280x720 1980K.ts
1174873 - 1280x720 1980K (2).ts
1174873- 1280x720 1980K (2).ts

Нужно отрезать первый цифровой блок (до минуса или пробела) и для каждого файла сходить на xml http://www.site.com/xml/webservice.p...del_id=1172642 (в конце URL-a переменная вырезанная только что из начала имени, разная), и в xml найти строку <name_display>имя</name_display> . Между тэгами будет имя модели, в данном примере вместо 'имя' "Giselle Kaufman". И это найденное имя добавить в самое начало имени файла а ля : "Giselle Kaufman 1172642 - 1280x720 1980K.ts" И так до конца всех файлов в папке. Готов заплатить 'на пиво' за работу. Спасибо!

PS: в туториале нашел что-то похожее на требуемое: How to add a prefix to file names in batch. Here we try to add ‘Work’ to every .ts file in the current folder and subfolders:
Код:

forfiles /S /M *.ts /C "cmd /c rename @file Work@file"
Но вместо добавление слова Work в имя файла нам нужно добавить переменную достанную из url-a, вот и все отличие.

Fors1k 23-04-2022 18:02 2983705

Код:

$localPath = "D:\Models"
$webPath  = "https://www.flirt4free.com/xml/webservice.php?a=get_model_info_semi_private&model_id="

Get-ChildItem $localPath -File | ForEach {
   
$id = $_.Name -Replace "\D.+"
    $data = IRM "$webPath$id" -UseBasic
    $name = $data.performers.performer.model_info.name_display +" "+ $_.Name
   
Rename-Item -Literal $_.FullName $name
}


бомбино 23-04-2022 18:13 2983707

Fors1k спасибо огромное, потестирую! и в PM напишу.


Время: 23:48.

Время: 23:48.
© OSzone.net 2001-