本帖最后由 yyz219 于 2025-3-2 12:57 编辑
完美解决了
- 检.lnk是否有效(拖).bat
- 2>1/* ::
- @echo off
- ::【检测:被拖文件,是文件夹 还是 文件(【文件夹】到:A,【文件】就提示)】
- echo.
- dir/ad "%~1" >nul 2>nul&&goto :A||echo 这是文件(文件夹才行)
- pause>nul 2>nul&exit/b
- :A
- echo.%~1(目录路径)(回车打开)
- echo.
- set "目录路径=%~1"
- dir /b "%目录路径%\*.lnk"|cscript /nologo /e:jscript "%~f0" "%目录路径%"
- pause>nul 2>nul
- start "" "%~1"
- exit/b */
- v=WSH.arguments, s=WSH.stdin, n=0
- sF=WSH.CreateObject('Scripting.FileSystemObject')
- ws=WSH.createObject('Shell.Application'), d=ws.NameSpace(v(0))
- while (!s.atendofstream) {
- kF=s.readline(), di = d.ParseName(kF), lnk = di.GetLink
- if (!sF.fileExists(lnk.path) && !sF.folderExists(lnk.path)) n++,WSH.echo('无效的 * .lnk :'+kF)
- }
- if (n==0) WSH.echo(v(0)+' 【*.lnk都有效】')
- WSH.quit()
- ==================================
- 运行的.bat
- 2>1/* ::
- @echo off
- echo.
- echo.
- echo.目录:延时3秒的(回车打开目录)
- echo.
- set "目录路径=D:\PE整理碎片(很好)\修改PE\启动\延时3秒的"
- dir /b "%目录路径%\*.lnk"|cscript /nologo /e:jscript "%~f0" "%目录路径%"
- pause>nul 2>nul
- start "" "D:\PE整理碎片(很好)\修改PE\启动\延时3秒的"
- exit/b */
- v=WSH.arguments, s=WSH.stdin, n=0
- sF=WSH.CreateObject('Scripting.FileSystemObject')
- ws=WSH.createObject('Shell.Application'), d=ws.NameSpace(v(0))
- while (!s.atendofstream) {
- kF=s.readline(), di = d.ParseName(kF), lnk = di.GetLink
- if (!sF.fileExists(lnk.path) && !sF.folderExists(lnk.path)) n++,WSH.echo('无效的 * .lnk :'+kF)
- }
- if (n==0) WSH.echo(v(0)+' 【*.lnk都有效】')
- WSH.quit()
复制代码
====================================================
原来的问题:
假设D:\579里面有不少快捷方式文件。其中,有一些是有效的,有一些是无效的。
bat能够检测.lnk是否有效吗?谢谢
(10 PE环境 没有powershell )(bat、vbs、wcs、ahk)都行 |