申し訳ありません、PowerShellを使った変換で文字化けが発生した可能性があります。日本語を含むファイル名を正しく扱うには、Windowsのバッチファイルだけでは難しい場合がありますが、PowerShellで直接処理することで解決できるかもしれません。以下に日本語の文字化けを回避するためのPowerShellスクリプトを提案します。
PowerShellスクリプトを使う方法
1. .ps1 ファイルを作成します(例:convert_filename.ps1)。
2. 以下のコードをそのファイルに貼り付けます。
param (
[string]$filePath
)
# ファイル名とディレクトリの分離
$fileDir = Split-Path $filePath
$fileName = Split-Path $filePath -Leaf
# 空白をアンダースコアに変換
$newFileName = $fileName -replace ' ', '_'
# 全角英数字を半角に変換
$newFileName = $newFileName.Normalize([Text.NormalizationForm]::FormKC)
# ファイルの新しいパスを作成
$newFilePath = Join-Path $fileDir $newFileName
# ファイル名を変更
Rename-Item -Path $filePath -NewName $newFileName
Write-Host "ファイル名を変換しました: $newFileName"
使い方
1. 上記スクリプトを作成し、PowerShellスクリプトとして保存します(例:convert_filename.ps1)。
2. ファイルをこのスクリプトにドラッグ&ドロップするか、PowerShellのコンソールで以下のように実行します:
.\convert_filename.ps1 "C:\path\to\your\file.txt"
スクリプトの説明
$filePath: ドラッグ&ドロップされたファイルのパスを取得します。
-replace ' ', '_': 空白をアンダースコアに変換します。
.Normalize([Text.NormalizationForm]::FormKC): 全角英数字を半角に変換する処理です。この方法で日本語の文字化けが発生しないようにします。
Rename-Item: ファイル名を変更します。
これで、日本語の文字化けを回避しつつ、ファイル名の空白をアンダースコアに変え、全角英数字を半角に変換できるはずです。