目的
「デスクトップ」や「ダウンロード」のように見た目は日本語だけど実体は英語のフォルダを作る
やることはこれだけ
- 名前を変えたいフォルダの中に desktop.ini を作成する
- フォルダに 読み取り専用ファイル属性(R) をつける (attrib +r folderpath)
動作確認したバージョン
- Windows 10 22H2
- Windows 11 23H2
- Windows 2016
desktop.iniの中身
文字コードはUnicode16リトルエンディアンにします。
[.ShellClassInfo]
LocalizedResourceName=ここに別名を書く
スクリプト
Pathのフォルダを作って、AliasNameで表示されるようにするPowerShellスクリプト(関数)です。
エラー処理考えてません。Pathはフルパスがいいと思います。
function CreateFolderWithAlias {
param(
[parameter(mandatory=$true)]
[string]
$Path,
[parameter(mandatory=$true)]
[string]
$AliasName
)
New-Item -ItemType Directory -Path $Path | Out-Null
$desktopIniPath = Join-Path -Path $Path -ChildPath "desktop.ini"
$desktopIniContent = @"
[.ShellClassInfo]
LocalizedResourceName=$($AliasName)
"@
Set-Content -Path $desktopIniPath -Value $desktopIniContent -Encoding Unicode
attrib +r $Path
attrib +s +h $desktopIniPath
}
以下のように呼び出して使います。
CreateFolderWithAlias -Path "C:\RealName" -AliasName "フォルダ別名"
解説
公式ドキュメントにはフォルダにシステム属性をつけると書いてありますが、読み取り属性にするだけで設定反映されました。システム属性にした場合でも、エクスプローラーでF2押してフォルダ名を変更すると、勝手に読み取り属性に変わります。変更後の名前はiniに書き込まれ、フォルダ自体の名前は維持されます。desktop.iniは属性つけなくても設定反映されるようです。
https://learn.microsoft.com/en-us/windows/win32/shell/how-to-customize-folders-with-desktop-ini
雑感
調べればわかることだけれど「コンパクトにまとまっててすぐ使える」って記事が見つからなかったので作りました。