检查批处理或vbs中是否存在快捷方式的目标?
问题描述:
这是我的问题:检查批处理或vbs中是否存在快捷方式的目标?
1º - 我有一个子文件夹的原始文件夹,充满了mp3文件
2º - 我有原来的文件夹的副本。
3º - 我已经将所有复制文件夹的“mp3”文件“转换”为“lnk”文件(使用NirCMD CLI工具)来维护文件夹结构。
现在我需要定期检查,如果每个.LNK剧照活着或目标被截断,因为我每天的维护与原来的文件夹中的是,移动文件或做一些事情......
我需要是这样的:
Echo: Corrupted links:
For /F "tokens=*" %%# in ('Dir /B /AD') do (
Pushd ".\%%#"
For /F "tokens=*" %%# in ('Dir /B "*.lnk"') do (
(SHORTCUT_CHECK_PROGRAM_OR_FUNCTION_OR_SOMETHING.EXE) "%%#"
IF NOT %ErrorLevel% EQU 0 (Echo: Target doesn't exist: "%%#")
)
POPD
)
我检查的参数:
mediainfo.exe
nircmd.exe shortcut
shortcut.exe
Vbscripts functions to create shortcuts (i can't find one vbs only for check the target)
但我找不到用别人的方法给我的信息对目标的捷径。
请帮助
PD:我也同意从第三方应用程序:)
PD2的解决方案:ALL .lnks的目标有这样的特殊字符拉丁文“ú”(我可以转换字符如果解决方案是批处理,其他方式我不知道如何设置字符右)
谢谢!
编辑:
纳拉亚南我不知道如何使用VBA,但我给你点你的帮助,三江源。
我记得我在批处理年前创建了一个临时文件清理器,而且我也遇到了同样的问题来检查任务栏快捷方式并将其删除。
我已经解决了这个问题,但我不记得的xD
就拿这一点,如果是有人帮助:
(VBS的发送错误级别代码)
PD:它在代码西班牙语,但每个人都可以把它理解:)
:Comprobar_accesos_directos_rotos.vbs
::Check invalid shortcuts target.vbs
:::::::::::::::::::::::::::::::::::::
echo set objshell = createobject("wscript.shell")>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
echo set objlink = objshell.createshortcut(wscript.arguments(0))>>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
echo set objfso = createobject("scripting.filesystemobject")>>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
echo if objfso.fileexists(objlink.targetpath) then>>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
echo wscript.quit(0)>>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
echo else>>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
echo wscript.quit(1)>>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
echo end if>>"%TEMP%\Comprobar_accesos_directos_rotos.vbs"
For /F "Tokens=*" %%a in ('dir /B /S "%appdata%\Microsoft\Windows\Start Menu\Programs\*.lnk"') do (
Set archivo="%%a"
call :comprobar
)
Goto :END
:Comprobar
::::::::::
"%TEMP%\Comprobar_accesos_directos_rotos.vbs" %archivo%
If %errorlevel% EQU 0 (
goto:eof
) ELSE (
Del /Q /F %archivo% >nul 2>&1
goto:eof
)
:END
pause
再见