2016-04-01 18 views
0

İyi gün, G/adlandırmak metin dosyasında bulunan maçı/aramasına dayalı dosyalarını düzenlemek için çalışıyorumDosyalar toplu adlandırma - Önceden tanımlanmış bir metin dosyasını

maç.

Böyle bir klasörde adlı medya dosyalarını yüz Kiril (Rus) bir çift var:

  • файл 35.avi
  • файл34.avi
  • файл2 4.avi
  • файл14 .avi

* bazı dosyalar boşluklar olan unutmayınız

istenen adlarla metin dosyası, şuna benzer:

  • файл 35.avi | 4. файл 35.avi
  • файл34.avi | 3. файл34.avi
  • файл2 4.avi | 1. Genel bilgiler 4.avi
  • файл14.avi | 2. файл14.avi

öyle gözüküyor nedeni | | pipomu kullandığı "Toplu yeniden adlandırma Utility" kullanarak çalıştı çünkü (bir ayırıcı olarak) 'dir "Yeniden Adlandırma Çiftleri" fonksiyonu için bir ayırıcı olarak. Yani, esas olarak, boru sağındaki dosya adı | son ürün. Ne yazık ki, bu işlev Kiril (Rusça) veya diğer standart olmayan karakterlerle çalışmaz.

Yeniden adlandırmadan önce dosya adlarıyla eşleşmemesi dışında neredeyse istediğim gibi görünen PowerShell betiği HERE'u buldum. Benzer şekilde, ihtiyacım olanı yapan bu Python betiğini HERE buldum ama bu Ubuntu için. Ne yazık ki, bir Windows7 üzerinde ve bana uygulandığından emin değilim.

Herhangi bir öneriniz var mı?

Zaman ayırdığınız için çok teşekkür ederim!

+0

neden * toplu yeniden adlandırma yardımcı programını * bir kez daha kullanamazsınız, ancak bu sefer doğru şekilde yapmak için? – Farside

+0

BRU ile yapmanın farklı bir yolu olup olmadığından emin değil. Doğru yolu önerebilir misin? – Norskyi

cevap

0

Anahtar eski adı (| sol taraftaki değer) bir HashTable, içine metin dosyasını okuyabilir ve değer yeni adı: Sonra

$RenameTable = @{} 
Get-Content textfile.txt |ForEach-Object { 
    $OldName,$NewName = $_.Split('|') 
    $RenameTable[$OldName] = $NewName 
} 

dosyaları şu anki duruma göre yeniden adlandır:

Get-ChildItem .\folder\with\avi\files |Rename-Item -NewName { 
    if($RenameTable.ContainsKey($_.Name)){ 
     $RenameTable[$_.Name] 
    } else { 
     $_.Name 
    } 
} 
+0

Bu harika çalıştı! Seni seviyorum :) Teşekkürler! – Norskyi

+0

Belki sadece Get-ChildItem $ ScriptDir -Filter * .avi | ... 'kullanın, sadece avi dosyalarını yeniden adlandırmayı denemek için, ama evet, aksi takdirde –

+0

mükemmel olmalı, tekrar teşekkürler! – Norskyi

İlgili konular