У меня есть следующий код командной строки, который вызывает WSHShell, который создаст ярлык в меню «Пуск» для Win7/8, но я не могу понять, как заставить PowerShell передавать кавычки, необходимые для UNC до аргументов в целевой строке.создание цитируемого пути для ярлыка с аргументами в powershell
Что я хочу: "\\ UNCPATH1 \ Directory \ application.exe" Argumenta ArgumentB
Что я получаю: \\ UNCPATH1 \ Directory \ application.exe Argumenta ArgumentB
код, используемый в настоящее время:
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:ProgramData\Microsoft\Windows\Start Menu\Programs\supercoolprogram\mrincredible.lnk")
$Shortcut.TargetPath = "\\UNCPATH1\Directory\application.exe"
$Shortcut.Arguments = "argumentA ArgumentB"
$Shortcut.WorkingDirectory = "\\UNCPATH1\Directory"
$Shortcut.Save()
Редактировать с C примеры ode ... благодаря TheMadTechnician и Speerian, у которых были рабочие примеры. Windows выделяет цитированные пути в целевом поле из ярлыков, которые не имеют пробела в UNC-пути приложения. Оба примера кода работают с путями с пробелами.
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:ProgramData\Microsoft\Windows\Start Menu\Programs\supercoolprogram\mrincredible.lnk")
$Shortcut.TargetPath = "`"\\UNCPATH1\Directory1\application.exe`""
$Shortcut.Arguments = "argumentA ArgumentB"
$Shortcut.WorkingDirectory = '"\\UNCPATH1\Directory1"'
$Shortcut.Save()
или
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:ProgramData\Microsoft\Windows\Start Menu\Programs\supercoolprogram\mrincredible.lnk")
$Shortcut.TargetPath = """\\UNCPATH1\Directory 1\application.exe"""
$Shortcut.Arguments = "argumentA ArgumentB"
$Shortcut.WorkingDirectory = "\\UNCPATH1\Directory 1"
$Shortcut.Save()
На втором примере обратите внимание на пробел в пути UNC и удаление отдельных цитат из WorkingDirectory в атрибутах ярлыка. (окна будут автоматически добавлены здесь)
Спасибо, но это все еще дает мне неуказанную цель UNC, как показано выше. – thatotheritguy
Вы правы, я исправил это. – TheMadTechnician
Это работает для предоставления котировок в начале в поле. Однако целевое поле по-прежнему показывает: \\ UNCPATH1 \ Directory \ application.exe аргументA ArgumentB Как добраться ... Я пробовал двойные и тройные кавычки, обертывание в одном цитата и не могла правильно настроить формат. – thatotheritguy