PowerShell を使用して、マップされたドライブ上のファイルを対象とするショートカットを作成しようとしています。ただし、このスクリプトは、ドライブが実際にマップされる前に実行されます。コードは次のとおりです。
$Shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut("$Env:USERPROFILE\Desktop\Test.lnk")
$Shortcut.TargetPath = "X:\Folder With Spaces\This is a long filename.txt"
$Shortcut.Save()
「X」ドライブはまだ存在しないため、ショートカットの「ターゲット」フィールドは次のようになります。
Windows XP: X:\Folder_W\This_is_.txt
Windows 7: X:\Folder_With_Spaces\This_is_a_long_filename.txt
どちらのオペレーティング システムも、周囲の二重引用符を削除し、スペースをアンダースコアに変換します。Windows XP では、フォルダとファイル名も 8 文字に切り捨てられます。
この問題を回避する方法はありますか?