Lanzar un acceso directo usando un archivo por lotes

12

Aquí está el problema.

Tengo un acceso directo en aproximadamente 260 computadoras ubicadas en la misma carpeta que a continuación;

"c: \ documentos y configuraciones \ todos los usuarios \ escritorio \ Agente remoto 1234 .lnk"

Lo único que cambia en el acceso directo es el número. ¿Hay alguna forma de usar un comodín en un archivo por lotes para iniciar el acceso directo en lugar de tener que especificar el nombre completo del archivo?

fantasma3h
fuente

Respuestas:

6

Puede usar for o forfiles para esta tarea. Forfiles es más flexible, pero podría no funcionar correctamente en versiones anteriores de Windows.

por

Desde un símbolo del sistema:

for %a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%a"

En un archivo por lotes:

for %%a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%%a"

Forfiles

forfiles /P "C:\Documents and Settings\All Users\Desktop" /M "Remote agent *.lnk" /C "cmd /C start \"\" @path"

Forfiles recorre todos los archivos en la ruta especificada /Pque coinciden con la máscara especificada /My ejecuta el comando especificado en /C. Aquí @pathestá la ruta completa del archivo.

Normalmente, usaríamos el comando start "" "Remote Agent 1234.lnk"para iniciar el acceso directo. Como start es un comando interno, debemos llamarlo en un nuevo shell ( cmd /C). \"\"son solo comillas dobles escapadas, ya que la cadena completa ya está citada

Dennis
fuente
forfiles / P "C: \ Documents and Settings \ All Users \ Desktop" / M "Remote agent * .lnk" / C "cmd / C start \" \ "@path" enumera los archivos en la carpeta pero no abre el atajo.
ghost3h
Eso es extraño. Hacer eco de los nombres de los archivos es la acción predeterminada, pero el /Cmodificador los anula. ¿Qué versión de Windows?
Dennis
Xp Professional, también enumera todas las extensiones de archivo, lo que supongo que no es normal.
ghost3h
No parece que sea compatible con Dennis, de nuevo solo hace eco de los archivos dentro del directorio desde el que se ejecuta. ¡Gracias por la ayuda hasta ahora!
ghost3h
Acabo de encontrar una fuente que dice que algunas versiones anteriores de forfiles usan -conmutadores en lugar de /(muy atípicas para Windows). Quizás esto funcione:forfiles -P"C:\Documents and Settings\All Users\Desktop" -M"Remote agent *.lnk" -C"cmd /C start \"\" @path"
Dennis