web-dev-qa-db-ja.com

Windows cmdでファイル名を変更しながらファイル名の先頭の文字を省略する方法は?

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\にあります。

5
saravana kumar

数か月前、このような同様の問題に直面しました。ファイル名の先頭の文字を削除するのは、DOSを使用するのが少し難しいことがわかりました。私はこれに良い解決策を持っていた this サイトに出くわしました。

ファイルを含むディレクトリにcdするだけで、これら2つのコマンドを実行できます。

REN *.* " *.*" 
FOR %v IN (*.*) DO REN "%v" %v

これにより、すべてのファイル名の最初の文字が置き換えられます。

アイデアは、最初のRENコマンドを使用して不要な文字の数をスペースに置き換え、次にFORループとRENコマンドを使用してこのスペースを削除することです。

3
Ayan

このための複雑なスクリプトは忘れてください。

renameは非常に古く、正しく完了したコマンドではありません。適切に使用しないと、結果が驚くかもしれません。

たとえば、abcd1.txtabcd2.txtなどを取得するために、abcd3.txt1.txt2.txtなどから接頭辞abcdを削除するには、 3.txt、単に入力します

rename "abcd*.txt" "////*.txt"

削除する最初の文字の数と同じ数の/が必要です。

両方の引数に二重引用符を使用してください。

上記を他の誰かから別のスレッドにコピーしました。

これはスペースを含むファイル名を正しく処理することに注意してください。

5
Andrew Ion

AndrewIonの投稿を拡張します。エレガントでシンプルですが、コマンドの柔軟性を完全に説明しているわけではありません。

次の3つのように、特定の種類のファイルには、数値のプレフィックスを付けて名前を付けます(番号を読みやすくするためにプレフィックスを角かっこで囲みます)。

[[001] Aardvark.txt

[#002] Badger.txt

[#003] Civet.txtなど.

プレフィックスを削除する(スペースを含む最初の7文字を削除する)場合は、次のように入力できます。

ren "[#???] *.txt" "///////*.txt"

これにより、のみファイルの名前が[#で始まり、]で、6番目と7番目の文字としてスペースがあり、-で終わります。 。txt。このコマンドは、上記のファイルの名前をAardvark.txtBadger.txtCivet.txtなどに変更します。

ファイル名の場合、数値の接頭辞はnot一意(例[#001] Aardvark。 txtおよび[#002] Aardvark.txt)の場合、コマンドはファイルのoneの名前を変更するだけで、もう一方の名前の変更をスキップし、エラーで応答します。 "ファイル名が重複しているか、ファイルが見つかりません。"

したがって、コマンドを実行する前に、各ファイルに一意の名前が付いていることを確認してくださいなしプレフィックス。

また、ほとんどの(適切な)名前変更プログラムでは、新しいファイル名がどのように表示されるかをプレビューできますbefore変更を適用すると、このRenameコマンドを使用すると、を押すとすぐにファイル名が変更されます。キーを入力してください。したがって、ファイルのコピーを作成することを常にお勧めしますbefore名前を変更します。次に、名前の変更が期待どおりに機能する場合は、元の名前のファイルを削除できます。そうしないと、ファイル名が大幅に間違ってしまい、元の名前に戻す方法がなくなる可能性があります(バックアップがない場合)。 警告されました! :-)

1
Muad'Dib