¿Hay atajos de Windows como metaparámetros?

0

¿Hay parámetros especiales que se pueden pasar para los objetivos de los accesos directos de Windows?

Parámetros de contexto como : el nombre del acceso directo actual, su ruta completa, el nombre de la carpeta de acceso directo u otros. Supongamos que el metaparámetro $ shortcutname era el nombre del atajo:

TARGET: "c:\folder1\subfolder\myprogram.exe" $shortcutname

UN CASO DE USO:

Supongamos que un programa que tiene un parámetro que identifica algo dentro de su negocio, en este ejemplo, digamos que el programa necesita un nombre de host y muchos otros parámetros. Siendo el nombre de host, el parámetro único que cambia y todos los demás parámetros son fijos. Considera lo siguiente:

myprogam -p1 blablabla -p2 123:5567 -p3 asbc.qwe -p4 "xxx" -hostname $hostname

Bueno, hay usuarios que no tienen habilidades para editar un acceso directo, pero saben cómo cambiar el nombre de un archivo en el Explorador de Windows. Podríamos explicar a los usuarios que solo copie y pegue el acceso directo y cambie su nombre al nombre que coincida con el nombre de host deseado. Por supuesto, si fuera posible pasar el nombre del atajo como metaparámetro a los objetivos del atajo.

Por lo tanto, una solución alternativa para hacer eso podría ser crear un archivo .bat que pueda manejarlo. Y así, usando el mismo procedimiento, copie y pegue, y ajuste el nombre para que coincida con el nombre de host deseado, pero en algunos sistemas, las políticas del administrador pueden ser una barrera para los scripts .bat.

Hay que decir que los usuarios ya usan los accesos directos, hay carpetas con docenas de ellos, pero son creados por el equipo de soporte.

Luciano
fuente
¿De dónde vendría la entrada para tal parámetro?
Bill_Stewart
@Bill_Stewart Del atajo "intérprete", lanzador, shell, ... No sé cómo se llama en Windows
Luciano
¿Qué problema estás tratando de resolver?
Bill_Stewart
@Bill_Stewart: Pase al programa el nombre del acceso directo que lo lanzó.
Luciano
Pero, ¿qué problema resuelve esto? (¿Por qué el programa necesita esa información?)
Bill_Stewart

Respuestas:

1

A menos que aborde explícitamente un archivo de acceso directo, no hay un acceso directo actual. Deberá utilizar el createshortcutmétodo wscript (también para los accesos directos existentes). Consulte este script:

$ShortCutFile = "C:\Users\$env:UserName\Desktop\Google Chrome.lnk"
$Wsh = New-Object -ComObject WScript.Shell
$ShortCut = $wsh.CreateShortcut($ShortCutFile )
$ShortCut|Get-Member
$ShortCut|Format-List

Salida:

   TypeName: System.__ComObject#{f935dc23-1cf0-11d0-adb9-00c04fd58a0b}

Name             MemberType Definition
----             ---------- ----------
Load             Method     void Load (string)
Save             Method     void Save ()
Arguments        Property   string Arguments () {get} {set}
Description      Property   string Description () {get} {set}
FullName         Property   string FullName () {get}
Hotkey           Property   string Hotkey () {get} {set}
IconLocation     Property   string IconLocation () {get} {set}
RelativePath     Property   string RelativePath () {set}
TargetPath       Property   string TargetPath () {get} {set}
WindowStyle      Property   int WindowStyle () {get} {set}
WorkingDirectory Property   string WorkingDirectory () {get} {set}

FullName         : C:\Users\UserName\Desktop\Google Chrome.lnk
Arguments        :
Description      : Internetzugriff
Hotkey           :
IconLocation     : C:\Program Files (x86)\Google\Chrome\Application\chrome.exe,0
RelativePath     :
TargetPath       : C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
WindowStyle      : 1
WorkingDirectory : C:\Program Files (x86)\Google\Chrome\Application

Puede modificar las $ShortCutpropiedades y luego usar el .savemétodo.

LotPings
fuente