99 - DescriptiveName.txt
adında bir dosya adında bir sürü dosyam var ve bu numarayı önden kaldırmak istiyorum böylece sadece DescriptiveName.txt
var.
Bunu nasıl yapabilirim? Bunu komut satırından yapabilir miyim yoksa bunu yapabilen bir yardımcı program var mı?
Başlığında "dos" yazdığını biliyorum ama sadece bunu yapmanın bir yolunu aradığın izlenimini alıyorum ve bunun en iyi yol olup olmadığını merak ediyorum.
Bunun için bulduğum mutlak en iyi araç Bulk Rename Utility .
Bu bir komut satırı aracı değil, ancak komut satırı sürümüne sahipler eğer gerçekten böyle kullanmak istiyorsan.
GUI sürümünü çok kullandım ve çok güçlü, çok hızlı ve kullanımı oldukça kolay.
Oh, ve kişisel kullanım içinFREE.
Küçük bir PowerShell betiği:
$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
Daha karmaşık normal ifadelerle birlikte, bu şöyle bir şey olabilir:
ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }
'01 - Beginning.mp3 'gibi şeyleri' Beginning - 01.mp3 'haline getirir.
İsimleri yayınlamadan önce kontrol etmek için -WhatIf
üzerindeki Rename-Item
parametresini kullanın.
AntRenamer , yeniden adlandırma modelini tanımlamayı oldukça kolaylaştırır; önceden hazırlanmış birçok kişi var (ve eylemlerin bir ön izlemesini verir):
Kişisel ve ticari kullanım için ücretsiz.
Windows komut satırını gerçekten kullanmak istiyorsanız (bir şey indirmek istemiyorsanız), aşağıdaki gibi yapabilirsiniz:
dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l
İlk satır, dosyaların listesini fileList.txt adlı bir dosyaya çıkarır. İkinci satır, listedeki adların her birini #, "-" ve adın kalan kısmı olmak üzere 3 kısma ayırır. Bunların her biri için rename komutunu yapar.
eski okul:
Bir DIR yapabilirsiniz ve çıktıyı DIR * .TXT> TEMP.BAT'de olduğu gibi bir dosyaya yönlendirebilirsiniz.
Sonra neye ihtiyacınız olmadığını çıkarmak için bir editör kullanın ve ihtiyaç duyduğunuz parçaları değiştirin. Üst satır olarak bir "@ echo off" ekleyin, kaydedin ve çalıştırın.
Başka bir seçenek:Büyük Dosya Renameri
Kolayca rename multiple dosya ve dosya uzantılarına izin verir . Çok hızlı ve basit!
İleri düzey kullanıcılar ve geliştiriciler için, normal ifadeler kullanmak mümkündür.
Hareket halinde görün:
Bu gibi şeyler için Total Commander 'in çoklu yeniden adlandırma aracını (ctrl + M) kullanıyorum. Sayılması çok fazla olan faydalı araçlarının kullanımı kolaydır ve gerekirse düzenli ifadeler ve şablonlar da kullanabilir. Oh, ve kesinlikle herhangi bir değişiklik yapmadan önce size bir önizleme verir.
Bu, Toplam Komutanı tavsiye ederek yanıtladığım üçüncü veya dördüncü soru ... Onlardan bir komisyon alıyor olmalıyım ;-)
Memnun kaldığım araç ReNamer . Aynı zamanda benim için yararlı olan yeniden adlandırma kurallarının kaydedilmesini de destekliyor.
Aşağıda, ilk satırdan önce metni silme örneği, ancak tanımlayabileceğiniz başka kurallar da var.
Bunun için Free Commander Portable (freeware) kullandım.
İleri düzey kullanıcılar ve geliştiriciler için, RegexRenamer 'i öneririm.
Profesyonelin:
Eksileri:
RenPhoric hakkında bir ay önce tanıdım. Süper. Ve bu bedava .
Karmaşık bir arayüz yok ve istediğim gibi tam olarak yeniden adlandırabildim. Düzenli İfade yetenekli. O zamandan beri başka bir şey kullanmadım.
En kolay yol, Ustayı Yeniden Adlandır komutunu kullanmaktır.
İşte birkomut satırısolution --- bir Java programı Özellikle dosya isimlerinde "kalıplarla" çalışmayı kolaylaştırmak için yazdım. Ücretsiz ve açık kaynak olduğundan, değiştirmekten çekinmeyin:
RenameWand
http://renamewand.sourceforge.net/
Bazı ilgili kullanım örnekleri:
Dosya adındaki "-"
öğesinden önceki her şeyi bırakın:
Java -jar RenameWand.jar "<a> - <b>" "<b>"
Son değiştirilen saate göre sıralama yaparak, dosya adına 3 basamaklı bir sayı verin.
Java -jar RenameWand.jar "<a>" "<3|#FT> <a>"
Dosya adının bölümlerini yeniden düzenleyin ve durumu değiştirin:
Java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>"
"<artist.upper> <album.title> - <song>.<ext.lower>"
Yukarıdaki @zdan gibi, bunu komut satırından yaptım (Windows'ta "cmd.exe" kullanarak). Benim özel davam için birkaç adım attı, ancak küçük bir araştırma bunu çözdü.
Zdan gibi, listeyi bir TXT dosyasına verdim, ardından dosyaları buna göre yeniden adlandırmak için tokens
ve delims
öğelerini kullandım. Benim durumumda, buna benzer bir dosya listesiyle başladım:
name-01-02-2012.csv
Dosya tarihi kısmının y/m/d sırasına göre olmasını istedim, sonunda "isim" kısmıyla şöyle:
2012-01-02-name.csv
Bunu en üst düzeyde yapmak için aşağıdaki kodu kullandım. Bu şekilde yapılırken, ".csv" uzantısı dahil dosya adının TÜM bölümlerinin dikkate alındığına dikkat edin. Bu beni ilk defa karıştırdı.
dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m
tokens
, dosya adının "bölümleri", delims
, ayraçlardır. Benim durumumda 2 sınırlayıcısının (bir çizgi ve bir nokta) olduğunu unutmayın.
Şahsen "Toplu Yeniden Adlandır" uygulamasını önemsemiyorum. Diğerlerinin de belirttiği gibi, GUI iğrenç ve sezgisel değil. Küçük bir araştırma ve basit kodlama ile bu işler verimli ve hızlı bir şekilde yapılabilir.
Komik isim ve komut satırı aracı çok güçlü, çok hızlı ve kullanımı oldukça kolaydır. "Metni Bul ve Değiştir" FART http://fart-it.sourceforge.net/ BÜYÜK İŞLER! txt dosyalarındaki kelimeleri de yeniden adlandırabilir.
Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]
Options:
-h --help Show this help message (ignores other options)
-q --quiet Suppress output to stdio / stderr
-V --verbose Show more information
-r --recursive Process sub-folders recursively
-c --count Only show filenames, match counts and totals
-i --ignore-case Case insensitive text comparison
-v --invert Print lines NOT containing the find string
-n --line-number Print line number before each line (1-based)
-w --Word Match whole Word (uses C syntax, like grep)
-f --filename Find (and replace) filename instead of contents
-B --binary Also search (and replace) in binary files (CAUTION)
-C --c-style Allow C-style extended characters (\xFF\0\t\n\r\\ etc.)
--cvs Skip cvs dirs; execute "cvs edit" before changing files
-a --adapt Adapt the case of replace_string to found string
-b --backup Make a backup of each changed file
-p --preview Do not change the files but print the changes
Multi rename script, Total Commanders Multi Rename aracına script üzerinden sürebileceğiniz bir açık kaynak alternatifidir. Meta veri bilgisi için TC eklentilerini kullanabilir.
@ echo off setlocal enabledelayedexpansion set X = 5 set FOLDER_PATH =. seted% FOLDER_PATH% %% için (*) 'deki f, %% f neq% ~ nx0 ( setini "dosya adı = %% ~ nf" set "dosyaadı =! dosyaadı: ~% X%!" olarak yapın .] ren "%% f" "! dosyaadı! %% ~ xf" ) popd
bunu bir toplu iş dosyasına kaydedin ve çalıştırın
Cylog’un WildRename 'ini seviyorum. Güçlü, henüz kullanımı kolay ve birçok özelliğe sahip:
Bir üniversitedeki dersleri yönetmek için Blackboard kullanıyorum. Toplu olarak bir ödev indirdiğimde (Blackboard'da, derecelendirme sütununun üst kısmına tıklayın, ardından "ödev dosyası indirme" Blackboard, dosya isminin Windows'da geçerli olması için çok uzun süren dosya adına bir sürü fazladan şey ekler.
İşte nasıl görünüyorlar:
Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx
Ve istediğim de buydu
studentname.docx
Bu yüzden @zdan ve @ gtr1971 'in önerdiği yaklaşımı kullandım, içindeki dosyaları içeren bir komut penceresi açarak (CMD.EXE). Ardından, tüm dosya adlarını bir belgeye koymak için bu komutu çalıştırın.
dir /b >filelist.txt
Belgeyi düzenleyin ve klasör adlarını vb. Kaldırın.
Blackboard tarafından eklenen dosya adı öğelerini yalnızca kullanıcı adı ve dosya uzantısıyla değiştirmek için bu komutu kullanın.
for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n
Umarım bu başka birine de yardımcı olur.
İşte dosyaları yeniden adlandırmak için kullanabileceğiniz Dosya Özniteliği Değiştirici adlı basit bir program. Taşınabilir bir programdır, böylece bir USB sürücüde taşıyabilirsiniz.
Ciddi bir güce ihtiyaç duyuyorsanız ve para kazanmaya istekliyseniz ... PowerGrep PowerGrep ile hemen hemen her şeyi yeniden adlandırabilirsiniz ... hatta ikili ara ve değiştir ... RegEx Guru tarafından oluşturuldu, Jan Goyvaerts .