返回列表 发帖
本帖最后由 aloha20200628 于 2025-3-21 09:58 编辑

回复 1# yyz219

存为 test.bat 运行,省略了临时文件(用 mshta 代码亦可省略临时文件但会导致屏闪)...
@set @v=1 //&(for /f "delims=" %%a in ('cscript -e:jscript "%~f0" "%~1"') do @echo,%%a)&pause&exit/b
WSH.echo(WSH.createObject('WScript.Shell').createShortcut(WSH.arguments(0)).targetpath)COPY
1

评分人数

TOP

回复 4# yyz219

二楼代码已订正...
1

评分人数

TOP

本帖最后由 aloha20200628 于 2025-3-21 10:49 编辑

回复 7# yyz219

这是 bat+jscript 混码结构的批处脚本文件,要在其中增加批处代码,可参考以下打散的代码结构,首行和末尾两行不要动,在1-5行以内加入你的批处代码即可...
2>1/* ::
@echo off
for /f "delims=" %%a in ('cscript -e:jscript "%~f0" "%~1"') do echo,%%a
pause&exit/b
*/
WSH.echo(WSH.createObject('WScript.Shell').createShortcut(WSH.arguments(0)).targetpath)COPY
1

评分人数

TOP

回复 1# yyz219

楼主还要寻求更短的代码吗?
复查了早至2008年的外网老帖,已有用 find+findstr ‘暴力读取’ 直接从 *.lnk 文件获得目标字符串的方法,代码量更少,但用于某些类别的快捷方式可能会有兼容性问题...以下给出一版针对本帖的代码,如 winPE 系统可用 find.exe,findstr.exe,应该可以一试...
存为 test.bat 直接用快捷方式拖入即可,或用命令行 test.bat "c:\abc\xyz.lnk" 运行即可
@echo off &for /f "delims=" %%a in ('find ":\" "%~f1"^|findstr /br ".:" ') do echo,%%a
pause&exit/bCOPY
1

评分人数

TOP

返回列表