この記事では、一括でファイル名を変更する方法を紹介します。
まず、結論を記載します。
一括でファイル名変更
- バッチファイルを使用する場合、「ren」コマンドを使用
- ps1ファイルを使用する場合、「Rename-Item」コマンドを使用
下記、詳細を説明します。
手動でファイル一括移動
ファイル名を変更していく場合、手動でも作業は可能です。
ファイル数が少ない場合は手動で良いと思います。
しかしファイル数が増えると、時間が掛かるだけでなく、ミスが起きる可能性がかなり高くなります。
そのため、次に紹介する、バッチファイルやps1ファイルを使用する方法をお勧めいたします。
バッチファイルを使ってファイル移動
最初にファイルを作る手間がかかりますが、
バッチファイルでファイル名変更をすると簡単&確実に作業を完了出来ます。
下のコードは、指定した拡張子のファイルに、指定した文字を追加するコードです。
@echo off
setlocal enabledelayedexpansion
rem フォルダのパスを取得
set "folder_path=%cd%"
rem 対象ファイルの拡張子を入力
set /p "extension=対象ファイルの拡張子を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...): "
rem ファイルの頭に追加したい文字を入力
set /p "front=ファイル名の頭に追加したい文字を入力後、エンターキーを入力してください:"
rem ファイルの末尾に追加したい文字を入力
set /p "back=ファイル名の末尾に追加したい文字を入力後、エンターキーを入力してください:"
for %%f in (*%extension%) do (
set "old_name=%%~nf"
set "new_name=!front!!old_name!!back!.!extension!"
ren "%%f" "!new_name!"
)
echo 完了しました!
pause
使用方法はこちらの記事をご覧ください。
追加ではなく一部を置き換えたりするバージョンも紹介しています。
ファイルは一度作ってしまえば使いまわせるので、非常におすすめです。
ps1ファイルを使ってファイル移動
バッチファイル同様、ps1ファイルを使用してもファイル名変更が出来ます。
# Prompt user for file extension
$fileExtension = Read-Host "対象ファイルの拡張子を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...)"
# Prompt user for the string to be removed from filenames
$oldString = Read-Host "ファイル名の中で、削除したい文字を入力後、エンターキーを入力してください:"
$newString = Read-Host "新たに追加したい文字を入力後、エンターキーを入力してください:"
# Set the target directory to the current directory
$targetDirectory = Get-Location
# Get all files with the specified extension in the target directory
Get-ChildItem -Path $targetDirectory -Filter *.$fileExtension | ForEach-Object {
$filename = $_.BaseName
$newFilename = $filename -replace [regex]::Escape($oldString), $newString
# If the filename has changed, rename the file
if ($filename -ne $newFilename) {
$newFilePath = Join-Path -Path $targetDirectory -ChildPath "$newFilename.$fileExtension"
Rename-Item -Path $_.FullName -NewName $newFilePath
}
}
Write-Host "Renaming complete."
Pause
その他の作業を効率化したい方へ
今回はファイル名変更の効率化について紹介しましたが、
これ以外にも簡単に効率化出来てしまう作業がたくさんあります。
以上、最後まで読んでいただきありがとうございました。
メーカー勤務のサラリーマン。
生成AIを駆使してプログラムを作り、
日々の業務の効率化を図る。