[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]求修改:获取快捷方式指向的目标.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

谢谢
我是小白,希望老师多多帮助

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



    非常感谢你的帮助
我是小白,希望老师多多帮助

TOP

  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. }
复制代码
1

评分人数

TOP

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
请按任意键继续. . .
我是小白,希望老师多多帮助

TOP

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



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

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

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


还可以修改吗?谢谢
我是小白,希望老师多多帮助

TOP

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



    我试一试先 谢谢
我是小白,希望老师多多帮助

TOP

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

回复 3# yyz219

原来如此,我看"指目标",看半天...我运行提示没有可用实例。话说,你咋天天跟快捷方式干上了...有什么好玩的吗...
bat小白,请多指教!谢谢!

TOP

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

评分人数

TOP

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



   本论坛的: [分享]wmic获取快捷方式指向的目标
http://www.bathome.net/viewthrea ... A%BD%2B%C4%BF%B1%EA
我是小白,希望老师多多帮助

TOP

你这个批处理是干嘛的...我水平太差了...看不明白,可以解释一下吗...
bat小白,请多指教!谢谢!

TOP

返回列表