33

ディレクトリに複数のファイルがあり、拡張子ではなくファイル名に何かを追加したい場合、どうすればよいですか?

file1.txtテストファイルとを使用して、次のことを試しましたfile2.txt

ren *.txt *1.1.txt

これにより、ファイルの名前がfile1.1.txtおよびfile2.txt1.1.txt

ファイルfile1 1.1.txtfile2 1.1.txt

これはcmdから可能ですか、それともbatファイルが必要ですか? PowerShell はどうですか?

4

10 に答える 10

26

?最長の名前の文字数よりも多くの文字があることを確認してください。

ren *.txt "???????????????????????????? 1.1.txt"

Windows RENAME コマンドはワイルドカードをどのように解釈しますか?を参照してください。詳細については。

新しいソリューション - 2014/12/01

正規表現が好きな人には、JREN.BAT があります。JREN.BATは、XP 以降の Windows のすべてのバージョンで実行されるハイブリッド JScript/バッチ コマンド ライン ユーティリティです。

jren "^.*(?=\.)" "$& 1.1" /fm "*.txt"

また

jren "^(.*)(\.txt)$" "$1 1.1$2" /i
于 2013-06-24T15:36:24.427 に答える
4
@echo off
for %%f in (*.txt) do (
    ren "%%~nf%%~xf" "%%~nf 1.1%%~xf"
)
于 2013-06-24T09:47:00.567 に答える
3

この一括名前変更ユーティリティを試してみてください。うまく機能します。たぶん、車輪を再発明しないでください。スクリプトが必要ない場合は、これが良い方法です。

于 2013-06-24T09:05:01.217 に答える
1

Supperuser.com の小さなコメントで次のことを見つけました。

@ JacksOnF1re - 新しい情報/テクニックが私の回答に追加されました。あいまいなスラッシュ手法を使用して、プレフィックスのコピーを実際に削除できます: ren "Copy of .txt" "//////// "

Windows RENAME コマンドはワイルドカードをどのように解釈しますか? このスレッドのdbenhamの回答を参照してください。

私の問題は少し異なりました。ファイルにプレフィックスを追加し、必要のないものを最初から削除したかったのです。私の場合、次のような列挙されたファイルが数百ありました。

SKMBT_C36019101512510_001.jpg
SKMBT_C36019101512510_002.jpg
SKMBT_C36019101512510_003.jpg
SKMBT_C36019101512510_004.jpg
:
:

ここで、それぞれの名前を (Album 07 picture #) に変更したいと思います。

A07_P001.jpg
A07_P002.jpg
A07_P003.jpg
A07_P004.jpg
:
:

私は単一のコマンドラインでそれを行いましたが、それは魅力的に機能しました:

ren "SKMBT_C36019101512510_*.*" "/////////////////A06_P*.*"

ノート:

  1. 引用 ( ") は"<Name Scheme>"オプションではありません。それ以外の場合は機能しません。この例では、"SKMBT_C36019101512510_*.*"and"/////////////////A06_P*.*"が引用されています。
  2. 削除する文字数を正確に数え、新しい文字用にスペースを残す必要がありました。スラッシュの正確な数(17 文字)を使用して、A06_P実際に置き換えられ2510_、削除されました。SKMBT_C3601910151/////////////////
  3. 上記を適用する前に、ファイルをコピーする (バックアップを作成する) ことをお勧めします。
于 2019-12-01T07:37:23.570 に答える
0

私もこれに戸惑いました...一括で名前を変更するときにウィンドウが挿入する括弧が好きではありませんでした。私の調査では、代わりに PowerShell を使用してスクリプトを作成することにしました。とても簡単で、魔法のように機能しました。ファイルの名前変更をバッチ処理する必要があるときはいつでも使用できます...これは頻繁に発生します。何百枚もの写真を撮り、カメラはそれらに IMG1234.JPG などの名前を付けます...

これが私が書いたスクリプトです:

# filename: bulk_file_rename.ps1
# by: subcan
# PowerShell script to rename multiple files within a folder to a 
# name that increments without (#)
# create counter
$int = 1
# ask user for what they want
$regex = Read-Host "Regex for files you are looking for? ex. IMG*.JPG "
$file_name = Read-Host "What is new file name, without extension? ex. New Image "
$extension = Read-Host "What extension do you want? ex. .JPG "
# get a total count of the files that meet regex
$total = Get-ChildItem -Filter $regex | measure
# while loop to rename all files with new name
while ($int -le $total.Count)
{
    # diplay where in loop you are
    Write-Host "within while loop" $int  
    # create variable for concatinated new name - 
    # $int.ToString(000) ensures 3 digit number 001, 010, etc
    $new_name = $file_name + $int.ToString(000)+$extension
    # get the first occurance and rename
    Get-ChildItem -Filter $regex | select -First 1 | Rename-Item -NewName $new_name
    # display renamed file name
    Write-Host "Renamed to" $new_name
    # increment counter
    $int++
}

これが誰かに役立つことを願っています。

サブカン

于 2014-04-17T22:37:56.310 に答える