私は99 - DescriptiveName.txt
というパターンで名前が付けられたたくさんのファイルを持っています、そして先頭から番号を取り除きたいのでDescriptiveName.txt
だけがあります。
これどうやってするの?コマンドラインから実行できますか、またはこれを実行できるユーティリティはありますか。
私はあなたのタイトルであなたが「ドスで」と言うのを知っています、しかし私はあなたがちょうどこれをする方法を探していて、それが最善の方法であるかどうか疑問に思っているという印象を得ます。
私がこれのために見つけた絶対的な最善のツールは、 一括名前変更ユーティリティ です。
これはコマンドラインツールではありませんが、本当にそのように使用したいのであれば、 コマンドラインバージョン があります。
私はGUIバージョンを多用しました、そしてそれは非常に強力で、非常に速くそして非常に使いやすいです。
おお、それは個人的な使用のためのFREEです。
小さなPowerShellスクリプト:
$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
より複雑な正規表現と組み合わせると、これは次のようになります。
ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }
これは '01 - Beginning.mp3'のようなものを 'Beginning - 01.mp3'に変えます。
-WhatIf
のRename-Item
パラメーターを使用して、名前を変更する前に名前を確認してください。
AntRenamer を使うと、名前の変更パターンを簡単に定義できます。たくさんのものがすでに用意されています(そしてそれはアクションのプレビューを与えます):
個人的および商業的使用のために無料です。
あなたが本当にwindowsのコマンドラインを使いたいのなら(何かをダウンロードしたくないのなら)、このようにすることができます。
dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l
最初の行は、ファイルのリストをfileList.txtというファイルに出力します。 2行目は、リスト内の各名前を3つの部分、#、「 - 」、および残りの名前に分けます。それらのそれぞれのためにそれはrenameコマンドをします。
古い学校:
DIR * .TXT> TEMP.BATのように、DIRを実行して出力をファイルにリダイレクトすることができます。
次に、エディタを使って不要なものを取り出し、必要な部分を修正します。一番上の行に "@echo off"を追加し、保存して実行します。
別のオプション:Massive File Renamer
それは簡単に複数のファイルとファイル拡張子の名前変更を可能にします。とても速くて簡単です。
上級ユーザーや開発者のために、正規表現を使うことが可能です。
実際に見てください。
私は Total Commander のマルチリネームツール(ctrl + M)をこのようなことに使います。数え切れないほど便利なツールは使いやすく、必要に応じて正規表現やテンプレートを使用することもできます。ああ、それは明らかに変更を加える前にあなたにプレビューを与える。
これは私がトータルコマンダーを推薦するために答えた3番目か4番目の質問です...私は彼らから手数料を得るべきです;-)
私が満足しているツールは ReNamer です。私は何度も同じリネームをするので、それはまた私にとって有用であったリネーム規則の保存もサポートします。
以下は最初のダッシュの前にテキストを削除する方法の例ですが、あなたが定義できるたくさんの他の規則があります。
私はこれを効果的にするために Free Commander Portable (フリーウェア)を使用しました。
私は約1ヶ月前に RenPhoric を発見しました。見事。そしてそれはフリーです。
複雑なインターフェースはなく、私はすぐに私が望んだとおりに名前を変更することができました。正規表現対応それ以来他に何も使っていません。
最も簡単な方法は、 マスター名の変更 を使用することです。
これがコマンドラインの解決策です---ファイル名の中の "パターン"を扱いやすくするために特に書いたJavaプログラムです。無料でオープンソースなので、自由に変更してください。
RenameWand
http://renamewand.sourceforge.net/
いくつかの関連した使用例:
ファイル名の"-"
の前にあるものをすべてドロップします。
Java -jar RenameWand.jar "<a> - <b>" "<b>"
ファイル名の前に3桁の数字を付けて、最終更新日時でソートします。
Java -jar RenameWand.jar "<a>" "<3|#FT> <a>"
ファイル名の一部を並べ替え、大文字と小文字を変更します。
Java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>"
"<artist.upper> <album.title> - <song>.<ext.lower>"
上記の@zdanと同様に、私はこれをコマンドラインで実行しました(Windowsでは "cmd.exe"を使用)。私の特定のケースには少し手間がかかりましたが、少しの調査で解決しました。
Zdanのように、私はリストをTXTファイルに出力し、それに応じてファイルの名前を変更するためにtokens
とdelims
を使いました。私の場合、私はsoのような名前のファイルのリストから始めました:
name-01-02-2012.csv
ファイルの日付部分はy/m/dの順序にして、末尾に "name"の部分を付けて、次のようになるようにします。
2012-01-02-name.csv
これをまとめて実行するために、次のコードを使用しました。このようにすると、拡張子「.csv」を含め、ファイル名のすべての部分が考慮されます。それは私をはじめてめちゃくちゃにしました。
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
はファイル名の「部分」、delims
は区切り文字です。私の場合、2つの区切り文字(ダッシュとドット)があることに注意してください。
私は個人的には "Bulk Rename"アプリを気にしません。他の人が述べたように、GUIは残酷で直感的ではありません。ちょっとした調査と簡単なコーディングで、これらのことは非常に効率的かつ迅速に行うことができます。
おかしな名前とコマンドラインツールは非常に強力で、非常に速く、そして非常に使いやすいです。 「テキストの検索と置換」FART http://fart-it.sourceforge.net/ WORKS GREAT!テキストファイル内の単語の名前も変更できます。
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
マルチリネームスクリプトはあなたがスクリプトを介して駆動することができます総司令官マルチリネームツールにオープンソースの代替手段です。メタデータ情報にTCプラグインを使用できます。
@ echo off setlocal enabledelayedexpansion set X = 5 set FOLDER_PATH =。 %%の場合は%FOLDER_PATH% f in(*)は、%% f neq%〜nx0( set "filename = %%〜nf" set "filename =!filename:〜%X%!" ren "%% f" "!filename!%%〜xf" ) popd
これをバッチファイルに保存して実行します。
Cylogの WildRename が好きそれは強力でありながら使いやすく、そして多くの機能を持っています。
私はBlackboardを使って大学のコースを管理しています。課題をまとめてダウンロードするとき(Blackboardで、グレーディングの一番上の列をクリックしてから、「課題ファイルのダウンロード」を選択します)Blackboardはファイル名に余分なものを追加します。
これが彼らがどのように見えるかです:
Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx
そしてこれが私が欲しかったものです
studentname.docx
そこで私は@zdanと@ gtr1971が助言した方法を使い、その中にファイルが入っているフォルダ(CMD.EXE)でコマンドウィンドウを開いた。次に、このコマンドを実行してすべてのファイル名を文書に入れます。
dir /b >filelist.txt
文書を編集してフォルダ名などを削除します。
このコマンドを使用して、Blackboardが追加したファイル名をユーザ名とファイル拡張子だけで置き換えます。
for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n
これが他の人にも役立つことを願っています。
私はJREN.BATと呼ばれる ハイブリッドJScript /バッチコマンドラインユーティリティを開発しました それは正規表現検索を実行することによってファイルまたはフォルダの名前を変更して名前を置き換えることができます。 XP以降のWindowsマシンでネイティブに実行される純粋なスクリプトです。完全なドキュメントはスクリプトに埋め込まれています。
JREN.BATがあなたの現在のディレクトリ、あるいはもっと良いのはあなたのパスのどこかにあると仮定すると、あなたの名前変更タスクは簡単になります。
jren "^\d+[ -]+(.+)\.txt$" "$1" /i
または
jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"
サブディレクトリで名前の変更を再帰的に実行する/S
オプションなど、多くのオプションがあります。
これはファイルの名前を変更するために使用できるFile Attribute Changerと呼ばれる別の単純なプログラムです。これはポータブルプログラムなので、USBドライブに入れて持ち運ぶことができます。
あなたが深刻な力を必要としていてお金を払い出す気があるのであれば... PowerGrep は市場で最も強力で用途の広いツールの1つです...あなたはPowerGrepでほとんど何でも名前を変更することができます...でもバイナリ検索と置換...それはRegEx Guruによって作成された、 Jan Goyvaerts 。