file - tool - تحميل برنامج bulk rename utility




إعادة تسمية الملفات عن طريق إعادة تهيئة أسماء الملفات الحالية-العناصر النائبة في سلاسل الاستبدال المستخدمة مع مشغل استبدال (3)

أوصي بشدة regex101.com لتعلم regex.

شيء من هذا القبيل يمكن أن تعمل:

"VideoName_s01e01.mp4" -replace '(.*s)(\d+)(e.*)', '$1$2_$3'

يعطي:

VideoName_s01_e01.mp4

لدي عدد قليل من ملفات الفيديو مثل هذا: VideoName_s01e01.mp4 حيث يكون الموسم والحلقات متغيرات. أريد إضافة تسطير أسفل السطر ("_") بين s?? و e?? .

لقد استخدمت powershell لأغراض إعادة التسمية ، ولدي نقطة انطلاق:

GCI $path -filter '*_s??e??*' -rec |  Ren -new { $_.name -replace '_s[0-9][0-9]', '_s[0-9]_[0-9]_' } -passthru    

هذا في الواقع إعادة تسمية ملفاتي VideoName_s[0-9]_e[0-9].mp4 .

في الأساس ، أنا أبحث عن الشخصيات s??e?? أنا فقط لا أعرف كيفية جعلها متغيرات في قسم الاستبدال.

أعتقد أن أفضل طريقة هي:

  1. العثور على موقف e??s?? (دعنا نسميها X).
  2. تقسيم السلسلة في X-3 .
  3. سلسل السلسلة مع " _ " في الوسط.

ريجكس هو الحل الأفضل ، أقترح أخرى مع عدد تشكيل واستخدام القالب

$exampleoffile = @"
namev1_s01e01.mp4
namvev2_s03e02.mp4
VideoName_s20e15.mp4
VideoName_s15e1.mp4
VideoName_s1e16.avi
VideoName_s1e23.mv
"@

$template[email protected]"
{file*:{prefix:Test1}_s{season:01}e{episode:01}{extension:.mp4}}
{file*:{prefix:1xxx}_s{season:100}e{episode:5}{extension:.mp4}}
{file*:{prefix:yyy3}_s{season:10}e{episode:02}{extension:.havi}}
"@



$exampleoffile | ConvertFrom-String -TemplateContent $template | 
% { "{0}_{1:D2}_e{2:D2}{3}" -f $_.file.prefix, [int]$_.file.season, [int]$_.file.episode, $_.file.extension }

-replace يستخدم regex ، وليس wildcards . وبالتالي عليك تغيير البديل إلى:

-replace '_s([0-9]{1,2})e([0-9]{1,2})', '_s$1_e$2_'






rename