У нас есть программа, которая требует, чтобы у каждого пользователя был ярлык на рабочем столе, указывающий на ini-файл. Каждый файл уникален для пользователя. Недавно мы сделали новую установку приложения на отдельный сервер. Я хотел бы иметь возможность запускать сценарий на клиентских компьютерах, который будет смотреть на текущий ярлык, изменять имя сервера, а затем сохранять его в том же месте.
Думаю, для этого понадобится PowerShell. Что-то вроде:
$oldargs = # Pull out the args from the current shortcut using voodoo magic
$args = $oldargs -replace "server1", "server2"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\app.lnk")
$Shortcut.TargetPath = "%ProgramFiles%\appdir\app.exe"
$Shortcut.Arguments = "$args"
$Shortcut.WorkingDirectory = "%ProgramFiles%\appdir"
$Shortcut.IconLocation = "%ProgramFiles%\appdir\pic.ico"
$Shortcut.Save()
На самом деле, я просто не понимаю, как я извлекаю аргументы из текущих аргументов быстрого доступа.
Как насчет:
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\oldapp.lnk")
$oldargs = $Shortcut.Arguments
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\newapp.lnk")
$Shortcut.TargetPath = "%ProgramFiles%\appdir\app.exe"
$Shortcut.Arguments = $oldargs -replace "server1", "server2"
$Shortcut.WorkingDirectory = "%ProgramFiles%\appdir"
$Shortcut.IconLocation = "%ProgramFiles%\appdir\pic.ico"
$Shortcut.Save()