Windows cmd
でファイルの名前を変更するときに、ファイル名の最初の文字を省略する方法を知りたいのですが。
私の場合、次のようなファイルがたくさんあります:
#test1.txt
#test2.txt
#test3.txt
#test4.txt
#test5.txt
Cmdプロンプトのすべてのファイルの名前を変更したい
test1.txt
test2.txt
test3.txt
test4.txt
test5.txt
ファイルはc:\myfiles\
にあります。
数か月前、このような同様の問題に直面しました。ファイル名の先頭の文字を削除するのは、DOSを使用するのが少し難しいことがわかりました。私はこれに良い解決策を持っていた this サイトに出くわしました。
ファイルを含むディレクトリにcd
するだけで、これら2つのコマンドを実行できます。
REN *.* " *.*"
FOR %v IN (*.*) DO REN "%v" %v
これにより、すべてのファイル名の最初の文字が置き換えられます。
アイデアは、最初のREN
コマンドを使用して不要な文字の数をスペースに置き換え、次にFOR
ループとREN
コマンドを使用してこのスペースを削除することです。
このための複雑なスクリプトは忘れてください。
rename
は非常に古く、正しく完了したコマンドではありません。適切に使用しないと、結果が驚くかもしれません。
たとえば、abcd1.txt
、abcd2.txt
などを取得するために、abcd3.txt
、1.txt
、2.txt
などから接頭辞abcd
を削除するには、 3.txt
、単に入力します
rename "abcd*.txt" "////*.txt"
削除する最初の文字の数と同じ数の/
が必要です。
上記を他の誰かから別のスレッドにコピーしました。
これはスペースを含むファイル名を正しく処理することに注意してください。
AndrewIonの投稿を拡張します。エレガントでシンプルですが、コマンドの柔軟性を完全に説明しているわけではありません。
次の3つのように、特定の種類のファイルには、数値のプレフィックスを付けて名前を付けます(番号を読みやすくするためにプレフィックスを角かっこで囲みます)。
[[001] Aardvark.txt
[#002] Badger.txt
[#003] Civet.txtなど.
プレフィックスを削除する(スペースを含む最初の7文字を削除する)場合は、次のように入力できます。
ren "[#???] *.txt" "///////*.txt"
これにより、のみファイルの名前が[#で始まり、]で、6番目と7番目の文字としてスペースがあり、-で終わります。 。txt。このコマンドは、上記のファイルの名前をAardvark.txt、Badger.txt、Civet.txtなどに変更します。
ファイル名後の場合、数値の接頭辞はnot一意(例[#001] Aardvark。 txtおよび[#002] Aardvark.txt)の場合、コマンドはファイルのoneの名前を変更するだけで、もう一方の名前の変更をスキップし、エラーで応答します。 "ファイル名が重複しているか、ファイルが見つかりません。"
したがって、コマンドを実行する前に、各ファイルに一意の名前が付いていることを確認してくださいなしプレフィックス。
また、ほとんどの(適切な)名前変更プログラムでは、新しいファイル名がどのように表示されるかをプレビューできますbefore変更を適用すると、このRenameコマンドを使用すると、を押すとすぐにファイル名が変更されます。キーを入力してください。したがって、ファイルのコピーを作成することを常にお勧めしますbefore名前を変更します。次に、名前の変更が期待どおりに機能する場合は、元の名前のファイルを削除できます。そうしないと、ファイル名が大幅に間違ってしまい、元の名前に戻す方法がなくなる可能性があります(バックアップがない場合)。 警告されました! :-)