elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (Solucionado) [Batch] ¿Como conseguir informacion de un acceso directo? (.lnk)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Solucionado) [Batch] ¿Como conseguir informacion de un acceso directo? (.lnk)  (Leído 6,809 veces)
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
(Solucionado) [Batch] ¿Como conseguir informacion de un acceso directo? (.lnk)
« en: 12 Mayo 2011, 02:05 am »

Hola   ;D

Despues de muchos intentos fracasados y de mucho buscar, me veo obligado a preguntar... :xD

Necesito hacer un batch, y lo único que se me resiste es esta parte... en donde necesito obtener y/o mostrar de alguna manera la ruta de destino de un acceso directo, un archivo .lnk, me refiero a esto:



Esa ruta es la que necesito conseguir vía CMD...


Básicamente lo que pretendo hacer es un batch que examine los accesos directos en busca de accesos directos rotos (Por eso quiero obtener la ruta de destino o conseguir expandir el acceso directo a la ruta de destino), y eliminarlos.


He probado haciendo este batch, sabiendo que no iba a funcionar... porque la ruta que me proporciona el comando "echo",es la del "dir", pero bueno, tenía que intentarlo... ni falta decir que he probado a expandirlo con todas las formas que hay XD

Código:
@echo off
For /F "Tokens=*" %%A in ('dir /B /S "C:\prueba\*.lnk"') do (
echo %%~fA
pause
)



Tambien he probado a usar de mil maneras el rundll32 con esta API, pero los resultados han sido nulos, creo que este es el buen camino pero no se utilizarlo bien:

Código:
rundll32.exe shell32.dll,SHObjectProperties,C:\Prueba\WindowsUpdate.lnk

(Aunque de todas formas imagino que usando la api lo único que conseguiría es abrir una ventana de propiedades del archivo, cuando yo solo quiero obtener la información dentro del cmd para usar esos datos como parámetro...)


También he intentado usar el programa mediainfo (command line) para que me mostrase información acerca del acceso directo, pero nada... solo me muestra el tamaño del archivo, y tambien he probado con programas para crear accesos directos como XXMKLINK para ver si me dejaba editar un .lnk o sacarle información, pero tampoco...


¿Alguien sabe de alguna manera para conseguir lo que pido?



Espero que si!  ::) Gracias de antemano...


PD: No se si tal vez me podría servir tambien un vbscript... solamente me serviría si el vbscript diese un código "errorlevel" en mi batch... y no se si eso es posible. Para que me entendais, usando un vbs debería ser así:

Código:
@echo off
For /F "Tokens=*" %%A in ('dir /B /S "C:\prueba\*.lnk"') do (

Script para saber si la ruta de destino del acceso directo existe, o si de lo contrario el acceso directo está roto.vbs < %%A

If %errorlevel% EQU 0 echo Todo OK
If %errorlevel% GEQ 1 echo El acceso directo está roto & del /q %%A

Supongo que se ha entendido ... XD

Ojalá alguien tenga un vbs así ya echo, un batch, o cualquier cosa puf...

saludosss


« Última modificación: 12 Mayo 2011, 21:37 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Batch] ¿Como conseguir informacion de un acceso directo? (.lnk)
« Respuesta #1 en: 12 Mayo 2011, 03:08 am »

Código
  1. set objshell = createobject("wscript.shell")
  2. set objlink = objshell.createshortcut(wscript.arguments(0))
  3. set objfso = createobject("scripting.filesystemobject")
  4. if objfso.fileexists(objlink.targetpath) then
  5. wscript.quit(0)
  6. else
  7. wscript.quit(1)
  8. end if

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: [Batch] ¿Como conseguir informacion de un acceso directo? (.lnk)
« Respuesta #2 en: 12 Mayo 2011, 21:37 pm »

Me funciona perfecto, haces que todo parezca tán fácil en VBS... XD

graciasss







este batch elimina los accesos directos rotos del menú inicio, y todas las carpetas vacias (0 bytes) ^^





Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4.  
  5.  
  6. :Accesos directos rotos
  7.  
  8. For /F "Tokens=*" %%a in ('dir /B /S "%appdata%\Microsoft\Windows\Start Menu\Programs\*.lnk"') do (
  9. Set archivo="%%a"
  10. call :comprobar)
  11.  
  12.  
  13.  
  14. For /F "Tokens=*" %%a in ('dir /B /S "%ProgramData%\Microsoft\Windows\Start Menu\Programs\*.lnk"') do (
  15. Set archivo="%%a"
  16. call :comprobar)
  17.  
  18.  
  19.  
  20.  
  21. :Carpetas vacias
  22.  
  23. For /F "Tokens=*" %%a in ('dir /B /S /A:D "%appdata%\Microsoft\Windows\Start Menu\Programs\"') do (
  24. If %%~za EQU 0 rd /Q /S "%%a")
  25.  
  26.  
  27. For /F "Tokens=*" %%a in ('dir /B /S /A:D "%ProgramData%\Microsoft\Windows\Start Menu\Programs\"') do (
  28. If %%~za EQU 0 rd /Q /S "%%a")
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40. :Comprobar
  41. Comprobar.vbs !archivo!
  42.  
  43. If %errorlevel% EQU 0 (
  44. goto:eof
  45. ) ELSE (
  46. Del /Q /F !archivo!
  47. goto:eof
  48. )
  49.  
« Última modificación: 13 Mayo 2011, 00:29 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Acceso directo
Programación Visual Basic
xDie 3 2,402 Último mensaje 7 Noviembre 2006, 19:38 pm
por CeLaYa
Se puede mediante un Batch crear un acceso directo????
Scripting
gh1E 4 18,589 Último mensaje 28 Septiembre 2007, 17:33 pm
por nhaalclkiemr
Como conseguir Link directo de un Stream Flash
Multimedia
SkoOrp1 3 7,458 Último mensaje 25 Noviembre 2009, 17:04 pm
por SuperDraco
Como conseguir el acceso remoto android??
Hacking
FKT 0 2,201 Último mensaje 13 Agosto 2015, 16:58 pm
por FKT
Como conseguir informacion, correos y contraseñas
Foro Libre
KHK 2 1,351 Último mensaje 28 Septiembre 2023, 14:22 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines