本帖最后由 yyz219 于 2022-12-30 12:25 编辑
最佳方案:
(主要这些代码能够在PE中运行)
快捷方式所指向目标保存文本.bat
- ::【拖到这里:快捷方式所指向目标保存文本"#.txt"】
- @echo off
- >"快捷方式所指向目标保存文本.vbs" echo Set oWshShell = CreateObject("WScript.Shell")
- >>"快捷方式所指向目标保存文本.vbs" echo Set oWshShortcut = oWshShell.CreateShortcut("%~1")
- >>"快捷方式所指向目标保存文本.vbs" echo Dim fso, MyFile
- >>"快捷方式所指向目标保存文本.vbs" echo Set fso = CreateObject("Scripting.FileSystemObject")
- >>"快捷方式所指向目标保存文本.vbs" echo Set MyFile = fso.CreateTextFile("#.txt", True)
- >>"快捷方式所指向目标保存文本.vbs" echo MyFile.WriteLine(oWshShortcut.TargetPath)
- >>"快捷方式所指向目标保存文本.vbs" echo MyFile.Close
-
- 快捷方式所指向目标保存文本.vbs
- del /q 快捷方式所指向目标保存文本.vbs
- exit
复制代码 ********************************
原来的问题:
查找快捷方式所指向目标.bat- @echo off&setlocal enabledelayedexpansion
- set /p T=【右键】粘贴.lnk路径:
- for /f "tokens=* delims=" %%i in ('type "%T%"^|find ":\"') do (
- set /a n=n%%2+1
- if !N! equ 2 echo %%i
- )
- pause
复制代码 要达到的效果:输入快捷方式路径(含扩展名),能够显示出快捷方式所指向目标
**********************************************************
实际情况:
1.输入:D:\桌面\Desktop\Dism++.lnk,能够正确显示
2.输入:D:\桌面\Desktop\关机.lnk,没有显示
另外,如果文件路径中有 !号,也不能够正确显示(!号丢失)
*************************************************************
上面两个快捷方式实际所指向目标是:
D:\桌面\Desktop\Dism++.lnk————"D:\1绿色软件\bat批处理\C盘使用情况 -Dism++x64-.bat"
D:\桌面\Desktop\关机.lnk——————D:\1绿色软件\bat批处理\注销+重新启动\关机.bat
————————————————————————————————————————————
问题不知道出现在哪里?谢谢 |