Yanıtlar:
Başlığında "dos" yazdığını biliyorum, ama 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 en iyi araç, Toplu Yeniden Adlandırma Yardımcı Programıdır .
Bu bir komut satırı aracı değildir, ancak gerçekten bu şekilde kullanmak istiyorsanız komut satırı sürümleri vardır .
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çin ücretsizdir .
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.
Yeniden adlandırmadan önce isimleri kontrol etmek için -WhatIf
parametreyi kullanın Rename-Item
.
... -replace '\d+ - ',''
. Ayrıca, ilki daha iyi olduğuna inanıyorum, sadece regex kullanarak başlangıçtan sıyrılmak. Buna rağmen ^ çapasını ifadenin başına eklemeniz gerektiğine inanıyorum, böylece yalnızca sayılarla başlayan adlarla eşleşiyor.
-replace
sağ tarafta sadece bir argüman olabilir, bu durumda ikincisi dolaylı olarak boş dizedir.
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 3, #, "-" ve adın kalan bölümlerine ayırır. Bunların her biri için rename komutunu yapar.
for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
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.
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 Renamer
Birden çok dosyayı ve dosya uzantısını kolayca yeniden adlandırmanızı sağlar . Çok hızlı ve basit!
İleri düzey kullanıcılar ve geliştiriciler için düzenli ifadeler kullanmak mümkündür .
Hareket halinde görün:
Kullandığım Toplam Komutanı bu gibi şeyler için 'ın çoklu yeniden adlandırma aracı (Ctrl + M). 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 almalı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 (ücretsiz) yazılımı kullandım :
İleri düzey kullanıcılar ve geliştiriciler için RegexRenamer'i öneririm .
Profesyonelin:
Eksileri:
En kolay yol, Master Rename kullanmaktır .
İşte bir komut satırı çözümü --- dosya isimlerinde "kalıplarla" çalışmayı kolaylaştırmak için özel olarak yazdığım bir Java programı. Ücretsiz ve açık kaynak olduğundan, değiştirmekten çekinmeyin:
RenameWand
http://renamewand.sourceforge.net/
Bazı ilgili kullanım örnekleri:
"-"
Dosya adından önceki her şeyi bırak :
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>"
Bir ay önce RenPhoric'i keşfettim . Süper. Ve ücretsiz .
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.
Cylog'un WildRename'sini seviyorum . Güçlü, henüz kullanımı kolay ve birçok özelliğe sahip:
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 gönderirim, sonra kullanılır tokens
ve delims
dosyaları buna göre yeniden adlandırırı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 "ad" 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 göz önüne alındığını unutmayın. 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 "parçaları" dir, delims
ayırıcı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. "Metin 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
-f
listelenen seçenek.
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.
@Eko kapalı setlocal enabledelayedexpansion X = 5 olarak ayarla FOLDER_PATH = 'a ayarlayın. % FOLDER_PATH% %% f için (*) içindeki %% f neq% ~ nx0 ( "dosya adı = %% ~ nf" olarak ayarlayın set "dosyaadı =! dosyaadı: ~% X%!" ren "%% f" "! dosyaadı! %% ~ xf" ) popd
bunu bir toplu iş dosyasına kaydedin ve çalıştırın
set /p "X=Enter the value for X: "
Bir üniversitedeki dersleri yönetmek için Blackboard kullanıyorum. Toplu olarak bir atama indirdiğimde (Blackboard'da, derecelendirme sütununun üst kısmına tıklayın, ardından "atama 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.
JREN.BAT adında karma bir JScript / toplu komut satırı yardımcı programı geliştirdim. Düzenli ifade araması yaparak dosyaları yeniden adlandırabilir ve adlarını değiştirebilirim. XP'den itibaren herhangi bir Windows makinesinde yerel olarak çalışan saf komut dosyasıdır. Tam dokümantasyon betiğin içine yerleştirilmiştir.
JREN.BAT'ın geçerli dizininizde olduğunu veya henüz daha iyisi, yolunuzun içinde bir yerde olduğunu varsayarak, yeniden adlandırma göreviniz önemsiz hale gelir.
jren "^\d+[ -]+(.+)\.txt$" "$1" /i
veya
jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"
/S
Alt dizinlerde yeniden adlandırmayı yinelemeli olarak gerçekleştiren bir seçenek de dahil olmak üzere birçok seçenek vardır.
Ciddi bir güce ihtiyaç duyuyorsanız ve para kazanmaya istekliyseniz ... PowerGrep , piyasadaki en güçlü ve çok yönlü araçlardan biridir ... PowerGrep ile neredeyse her şeyi yeniden adlandırabilirsiniz ... ikili arama ve değiştirme ... RegEx Guru, Jan Goyvaerts tarafından yaratılmıştır .