PowerShell スクリプトに直接ドラッグアンドドロップすることは難しいため、コマンドラインや右クリックメニューを使用する方法があります。ただし、以下の手順を実行すれば、ドラッグアンドドロップの代替方法として PowerShell スクリプトを利用することができます。
1. バッチファイルを使用して PowerShell スクリプトを実行
バッチファイルを作成して、ドラッグアンドドロップされたファイルパスを PowerShell に渡すことができます。以下の手順で進めてください。
手順:
1. バッチファイル(.bat)を作成:
新しいテキストファイルを作成して、ファイル名を run_convert.bat に変更します。
2. バッチファイルに以下のコードを貼り付けます:
@echo off
set "filePath=%~1"
powershell.exe -ExecutionPolicy Bypass -File "convert_filename.ps1" "%filePath%"
pause
3. PowerShell スクリプト(convert_filename.ps1)を作成:
convert_filename.ps1 ファイルを同じディレクトリに作成して、以下のコードを貼り付けます。
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"
2. 使い方
1. ドラッグアンドドロップされたファイルを run_convert.bat にドロップすると、バッチファイルが PowerShell スクリプトを呼び出してファイル名を処理します。
解説
set "filePath=%~1" はドラッグアンドドロップされたファイルのパスを取得し、PowerShell スクリプトに渡します。
powershell.exe -ExecutionPolicy Bypass -File "convert_filename.ps1" は PowerShell スクリプトを呼び出し、そのパスを処理します。
pause コマンドはスクリプトが完了した後、結果を表示するためにコンソールを一時停止します。
この方法で、バッチファイルにドラッグアンドドロップすることで PowerShell スクリプトが実行され、ファイル名の変換が行われます。