しばらくと言わず、ものすごく悩んだのだが、一旦文字列を切ってエスケープしたスペースを渡す必要があるようだ。
PS C:\WINDOWS\system32> REG ADD HKCR\Directory\Shell\WSLUbuntuHere /f /v Icon /d '"""a"'` '"a"""'
この操作を正しく終了しました。
PS C:\WINDOWS\system32> REG QUERY HKCR\Directory\Shell\WSLUbuntuHere /v Icon
HKEY_CLASSES_ROOT\Directory\Shell\WSLUbuntuHere
Icon REG_SZ "a a"
コマンドプロンプトの場合はこう書けば出来る。
C:\WINDOWS\system32>REG ADD HKCR\Directory\Shell\WSLUbuntuHere /f /v Icon /d """a"^ "a"""
この操作を正しく終了しました。
これに気が付いてようやく道が開けたのだが、これってつまりコマンドプロンプトに下請けに出してるという意味か???
なぜ、こうなるのか全然気持ちが分からん。
とりあえず、対処方法は分かったのだが、流石に
- '"""C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2022.1.0_x64__79rhkp1fndgsc\ubuntu.exe"""'
を
- '"""C:\Program"'` '"Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2022.1.0_x64__79rhkp1fndgsc\ubuntu.exe"""'
と書く気にはなれず、REG_EXPAND_SZ にして
- '"""%ProgramFiles%\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2022.1.0_x64__79rhkp1fndgsc\ubuntu.exe"""'
とした。