這是我的問題:檢查批處理或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
再見