Я пытаюсь создать ярлык для папки, используя Powershell ISE, и, в отличие от всех найденных примеров, $Shortcut.TargetPath
, похоже, не хочет назначать переменную или взаимодействовать с ней.
Я пытался использовать буквенные пути в кавычках ($Shortcut.TargetPath = "\\thisis\where\the\path\goes\"
), которые, кажется, работают, однако, как только я использую переменную, она просто превращается в ноль ($Shortcut.TargetPath = $TargetDir)
.
Я пытался добавить его, я пытался сначала записать значение с кавычками, а затем перезаписать это значение, я попытался написать значение с кавычками, а затем добавить к этому значению, оно всегда превращается вnull.
$WScriptShell = New-Object -ComObject WScript.Shell
$TargetDir = "D:\Files\"
$SourceDir = "C:\Windows\"
$Shortcutid1 = $TargetDir + '.lnk'
$Shortcutid = $SourceDir + '.lnk'
$Shortcut = $WScriptShell.CreateShortcut($Shortcutid1)
$Shortcut.TargetPath = $TargetDir
$Shortcut.TargetPath
$TargetDir
$Shortcut1 = $WScriptShell.CreateShortcut($Shortcutid)
$Shortcut1.TargetPath = "C:\Windows\"
$Shortcut1.TargetPath
Теперь, что я ожидаю, произойдет так:
D:\Files\
D:\Files\
C:\Windows\
Вместо этого я получу вывод:
D:\Files\
C:\Windows\
Строка $Shortcut.TargetPath
просто пустая, но не нулевая.
Я проверил ее с if([string]::IsNullOrEmpty($Shortcut.TargetPath)) {"empty"} else {"wat"}
, и на выходе получилось wat
, так что, как ни странно, там, по крайней мере, что-то есть?Изменить: версия Powershell является версия 5.1.17763.503