elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:20  


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  (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 1,674 veces)
pitoloko


Desconectado Desconectado

Mensajes: 2.500


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

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 por pitoloko » En línea

pa que
Novlucker
Ninja y
Moderador
***
Desconectado Desconectado

Mensajes: 10.239


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 »

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

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

pitoloko


Desconectado Desconectado

Mensajes: 2.500


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

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
@echo off
setlocal enabledelayedexpansion
 
 
 
:Accesos directos rotos
 
For /F "Tokens=*" %%a in ('dir /B /S "%appdata%\Microsoft\Windows\Start Menu\Programs\*.lnk"') do (
Set archivo="%%a"
call :comprobar)
 
 
 
For /F "Tokens=*" %%a in ('dir /B /S "%ProgramData%\Microsoft\Windows\Start Menu\Programs\*.lnk"') do (
Set archivo="%%a"
call :comprobar)
 
 
 
 
:Carpetas vacias
 
For /F "Tokens=*" %%a in ('dir /B /S /A:D "%appdata%\Microsoft\Windows\Start Menu\Programs\"') do (
If %%~za EQU 0 rd /Q /S "%%a")
 
 
For /F "Tokens=*" %%a in ('dir /B /S /A:D "%ProgramData%\Microsoft\Windows\Start Menu\Programs\"') do (
If %%~za EQU 0 rd /Q /S "%%a")
 
 
 
 
 
 
exit
 
 
 
 
 
:Comprobar
Comprobar.vbs !archivo!
 
If %errorlevel% EQU 0 (
goto:eof
) ELSE (
Del /Q /F !archivo!
goto:eof
)
 
« Última modificación: 13 Mayo 2011, 00:29 por pitoloko » En línea

pa que
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como quitar flechita del acceso directo en W. Vista
Windows
ta- 2 491 Último mensaje 17 Diciembre 2006, 21:41
por ta-
Se puede mediante un Batch crear un acceso directo????
Scripting
gh1E 4 8,706 Último mensaje 28 Septiembre 2007, 17:33
por nhaalclkiemr
Ocultar un BATCH en un Acceso Directo...
Hacking Básico
HackxCrack 4 3,465 Último mensaje 24 Febrero 2008, 13:23
por Brakia
Como puedo crear acceso directo con JDownloader??
Software
Bartu 4 3,465 Último mensaje 17 Agosto 2009, 11:36
por Bartu
Como conseguir Link directo de un Stream Flash
Multimedia
SkoOrp1 3 3,272 Último mensaje 25 Noviembre 2009, 17:04
por pitoloko
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines