Board logo

标题: [其他] [已解决]求修改:获取快捷方式指向的目标.bat,显示短路径,改为显示长路径,谢谢 [打印本页]

作者: yyz219    时间: 2022-12-16 16:15     标题: [已解决]求修改:获取快捷方式指向的目标.bat,显示短路径,改为显示长路径,谢谢

本帖最后由 yyz219 于 2022-12-16 22:22 编辑

百度到优秀的bat:
  1. ::【获取lnk快捷方式指向的目标文件(%~1————快捷方式路径{含.lnk})】
  2. @echo off
  3. ::【检测(是否在PE中运行),是向下运行,否跳到:A】
  4. if not exist "X:\windows\"   goto :A
  5. copy /y "%~dp0cscript.exe" "X:\Windows\System32\cscript.exe"
  6. :A
  7. set "M=%~1"
  8. >"%tmp%\t.t" echo;WSH.echo CreateObject("WScript.Shell").CreateShortcut(WSH.Arguments(0)).targetpath
  9. for /f "delims=" %%a in ('cscript -nologo -e:vbscript "%tmp%\t.t" "%M%"') do echo;%%a>"%~dp0路径.txt"
  10. start "" "%~dp0路径.txt"
  11. exit
复制代码
*********************************************************
原来的问题

求修改:获取快捷方式指向的目标.bat,显示短路径,改为显示长路径,谢谢
*****************************************************
已有“获取快捷方式指目标.bat”:
  1. @echo off
  2. for /f "delims=" %%i in ('dir/a-d/s/b/l/on ".\*.lnk"')do (
  3. xcopy/y "%%i" "%programdata%\microsoft\windows\start menu\programs\startup\" >nul 2>nul
  4. for /f "delims=" %%j in ('wmic startup where description^="%%~ni" get * /value')do (
  5.   for /f "tokens=1,* delims==" %%k in ("%%j")do (
  6.    if /i "%%k"=="command" (
  7.     ::echo,lnkname: %%~nxi
  8.     echo,lnkpath: %%l
  9.    )
  10.   )
  11. )
  12. del/f/q "%programdata%\Microsoft\Windows\Start Menu\Programs\Startup\%%~nxi" >nul 2>nul
  13. )
  14. pause
复制代码
******************************************************************************
运行后显示:
lnkpath: J:\注册、~1.TXT
******************************************************************************
修改以后,希望运行后显示:
lnkpath: J:\注册、反注册dll.txt

谢谢
作者: 77七    时间: 2022-12-16 17:38

你这个批处理是干嘛的...我水平太差了...看不明白,可以解释一下吗...
作者: yyz219    时间: 2022-12-16 18:10

你这个批处理是干嘛的...我水平太差了...看不明白,可以解释一下吗...
77七 发表于 2022-12-16 17:38



   本论坛的: [分享]wmic获取快捷方式指向的目标
http://www.bathome.net/viewthrea ... A%BD%2B%C4%BF%B1%EA
作者: idwma    时间: 2022-12-16 20:18

8行改成这样试试
  1. set /p =lnkpath:<nul & dir /b /s "%%l"
复制代码

作者: 77七    时间: 2022-12-16 20:21

本帖最后由 77七 于 2022-12-16 20:22 编辑

回复 3# yyz219

原来如此,我看"指目标",看半天...我运行提示没有可用实例。话说,你咋天天跟快捷方式干上了...有什么好玩的吗...
作者: yyz219    时间: 2022-12-16 20:22

8行改成这样试试
idwma 发表于 2022-12-16 20:18



    我试一试先 谢谢
作者: yyz219    时间: 2022-12-16 20:30

本帖最后由 yyz219 于 2022-12-16 20:31 编辑
8行改成这样试试
idwma 发表于 2022-12-16 20:18



    不是桌面的文件  的 快捷方式  问题解决了

但是,如果是 桌面的文件  的 快捷方式 ,运行后显示:

lnkpath:  系统找不到指定的路径。
请按任意键继续. . .


还可以修改吗?谢谢
作者: yyz219    时间: 2022-12-16 20:39

8行改成这样试试
idwma 发表于 2022-12-16 20:18



    另外,长路径也不行:

lnkpath: 系统找不到指定的文件。
lnkpath: d:\1绿色~1\bat批~1\c盘使用情况 -dism++x64-.bat
lnkpath: d:\1绿色~1\系统\设置\个人文~1\个人文件转移工具1.6.exe
lnkpath: j:\注册、反注册dll.txt
请按任意键继续. . .
作者: WHY    时间: 2022-12-16 21:26

  1. @if(0)==(0) echo off
  2. cd /d "%~dp0"
  3. dir /b /a-d /s *.LNK | cscript //nologo //e:jscript "%~f0"
  4. pause & exit
  5. @end
  6. var oShell = new ActiveXObject('WScript.Shell');
  7. while(!WSH.StdIn.AtEndOfStream){
  8.     var strFile = WSH.StdIn.ReadLine();
  9.     var oLink = oShell.CreateShortcut(strFile);
  10.     WSH.Echo('Source: ' + strFile);
  11.     WSH.Echo('Target: ' + oLink.TargetPath + ' ' + oLink.Arguments);
  12. }
复制代码

作者: yyz219    时间: 2022-12-17 08:22

WHY 发表于 2022-12-16 21:26



    非常感谢你的帮助




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2