以下のようなバッチファイルを作成することで、コマンドプロンプトにドラッグアンドドロップされたファイル名の空白をアンダースコアに変え、全角文字を半角文字に変換することができます。

1. バッチファイルの作成手順

1. 新しいテキストファイルを作成します(例:convert_filename.bat)。


2. 以下のコードをそのファイルに貼り付けます。



@echo off
setlocal enabledelayedexpansion

REM ドラッグ&ドロップされたファイルのパスを取得
set "file_path=%~1"
set "file_name=%~nx1"

REM 空白をアンダースコアに置き換え
set "new_name=!file_name: =_!"

REM 全角英数字と記号を半角に変換するための関数(日本語には影響しない)
for /f "delims=" %%A in ('powershell -NoProfile -Command "[System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::Default.GetBytes('%new_name%'))"') do (
    set "new_name=%%A"
)

REM 変更後のファイル名
set "new_file_path=%~dp1%new_name%"

REM ファイル名を変更
rename "%file_path%" "%new_name%"

echo ファイル名を変換しました: "%new_name%"
pause

2. 動作説明

set "file_path=%~1": ドラッグ&ドロップされたファイルのフルパスを取得します。

set "file_name=%~nx1": ファイルの名前部分を取得します。

set "new_name=!file_name: =_!": ファイル名の空白をアンダースコア(_)に変換します。

powershell コマンドを使用して、全角文字を半角に変換します。ここでは、日本語には影響せず、英数字や記号を半角に変換することができます。

最後に、rename コマンドでファイル名を変更します。


3. 使い方

作成した .bat ファイルにファイルをドラッグアンドドロップすると、ファイル名が自動的に空白がアンダースコアに変わり、全角英数字が半角に変換されます。