Windows: создание ярлыка для несуществующего диска не допускает длинных папок и имен файлов - PullRequest
2 голосов
/ 26 мая 2011

Я пытаюсь использовать 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» еще не существует, поле «Target» ярлыка в итоге говорит:

Windows XP: X: \Folder_W \ This_is_.txt

Windows 7: X: \ Folder_With_Spaces \ This_is_a_long_filename.txt

Обе операционные системы удаляют окружающие двойные кавычки и преобразуют пробелы в подчеркивания.Windows XP также усекает папку и имена файлов до 8 символов.

Есть ли способ обойти эту проблему?

1 Ответ

0 голосов
/ 29 августа 2011

Я не знаю, что вы можете обойти это, не проверяя TargetPath.

Я бы предложил использовать путь UNC для цели, чтобы он не зависел от подключаемого диска.

...