ディレクトリに複数のファイルがあり、拡張子ではなくファイル名に何かを追加したい場合、どうすればよいですか?
テストファイルfile1.txt
およびfile2.txt
を使用して、以下を試しました。
ren *.txt *1.1.txt
これにより、ファイルの名前がfile1.1.txt
およびfile2.txt1.1.txt
に変更されます
ファイルをfile1 1.1.txt
とfile2 1.1.txt
にしたい
これはcmdから可能ですか、これを行うためにbatファイルが必要ですか? PowerShellはどうですか?
for /f "delims=" %%i in ('dir /b /a-d *.txt') do ren "%%~i" "%%~ni 1.1%%~xi"
/f
パラメータなしで単純なfor
ループを使用すると、既に名前が変更されたファイルの名前が再び変更されます。
最も長い名前の文字よりも?
が多いことを確認してください。
ren *.txt "???????????????????????????? 1.1.txt"
詳細については、 Windows RENAMEコマンドがワイルドカードをどのように解釈するか を参照してください。
新しいソリューション-2014/12/01
正規表現が好きな人には、 JREN.BAT -XP forward。
jren "^.*(?=\.)" "$& 1.1" /fm "*.txt"
または
jren "^(.*)(\.txt)$" "$1 1.1$2" /i
ステップ1:
すべてのファイルを選択(Ctrl + A)
ステップ2:
次に、名前変更オプションを選択します
ステップ3:
ファイル名を選択...例:myfile
自動的にmyfile(01)、myfile(02)、.....に名前を変更します
スペースとブラケットを置き換える場合は、続行ステップ4
ステップ4:
現在のフォルダーからWindows Powershellを開きます
ステップ5:
空のスペースをアンダースコア(_)に置き換える
dir | rename-item -NewName {$_.name -replace [Regex]::Escape(" "),"_"}
ステップ6:
オープンブラケットの交換用
dir | rename-item -NewName {$_.name -replace [Regex]::Escape("("),""}
クローズブラケットの交換用
dir | rename-item -NewName {$_.name -replace [Regex]::Escape(")"),""}
@echo off
for %%f in (*.txt) do (
ren "%%~nf%%~xf" "%%~nf 1.1%%~xf"
)
これを試してください Bulk Rename Utility それはうまく機能します。たぶん車輪を再発明しないでください。スクリプトを必要としない場合、これは良い方法です。
Endoroのコマンド(Endroに感謝)をコマンドプロンプトに直接貼り付けて、ファイルにプレフィックスを追加しようとしましたが、エラーが発生しました。解決策は、%%を%に減らすことでした。
for /f "delims=" %i in ('dir /b /a-d *.*') do ren "%~i" "Service.Enviro.%~ni%~xi"
これは特定のケースで機能します:
ren file?.txt "file? 1.1.txt"
私もこれに戸惑いました...一括で名前を変更するときにWindowsが挿入する括弧が好きではありませんでした。私の研究では、代わりに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++
}
これが世界中の誰かに役立つことを願っています。
サブカン