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

[文本处理] BAT如何获取开始-程序里的快捷方式的起始位置?

要实现的结果是:查找一个exe文件所在的文件夹位置,然后把几个文件复制进这个文件夹。

现在已经有批处理的代码实现了这个结果,但是执行时间太长,大致方法是在全部盘符里查找该exe文件,然后复制几个文件到这个exe文件所在的文件夹,但是全盘搜索无论是用for f 还是用for d的速度都慢,所以想用更快捷的方法来执行。

更快捷的思路是这个exe文件必定会在开始-程序里有个快捷方式(安装这个软件必然的结果,无论是安装到哪个目录里),所以想直接由这个快捷方式的起始位置来快速定位到exe文件所在的文件夹,这样就不用全盘搜索了,应该会节省时间吧,

但现在的问题是不知道怎么获取这个在开始-程序里的这个快捷方式的起始位置(不是这个快捷方式所在的文件夹的位置),在坛里搜了搜,看到有获取桌面快捷方式的起始位置的帖子,但试着改了改,执行后得不到我想要的结果,还请有高手帮忙给个代码,谢谢!

你要说出是什么程序,或许会有更快的方法。
你这样说了一大堆还不是要找出快捷方式所在位置。

TOP

看到有获取桌面快捷方式的起始位置的帖子

能否分享一下这个链接?我想学习学习

TOP

回复 2# 522235677


    1、那个exe是很少见的一种专业软件,无非就是个lnk,不用非要把文件名都列出来吧
   2、不是要这个快捷方式的位置,是快捷方式的起始位置,如果是要获取快捷方式所在的位置,根本也不用批处理来做啦。

TOP

回复 3# DAIC


   
http://www.bathome.net/viewthrea ... C%BD%DD%B7%BD%CA%BD

另:使用搜索功能搜一下就搜到了

TOP

回复 4# llqcnw


    我的意思就是快捷方式指向的位置,只是不想说的那个明确。又不是我在提问

TOP

回复 5# llqcnw


    你是根据几楼的代码修改的?请把你修改之后未能得到正确结果的代码贴出来看看

TOP

回复 7# DAIC


@echo off

for /f "delims=" %%a in ('find /i ":" QQ游戏.lnk ^| findstr /i "^[a-z]:"') do set QQfull=%%a

echo %QQfull%

echo.&pause


这个是获取桌面快捷方式的起始位置的一段代码,

“qq游戏”是我改的


执行的结果是
找不到文件-qq游戏。lnk
echo处于关闭状态
请按任意键继续

TOP

本帖最后由 llqcnw 于 2013-9-2 20:22 编辑

回复 7# DAIC


    这段代码是我搜索后看到的一个帖子里的

http://www.bathome.net/viewthrea ... C%BD%DD%B7%BD%CA%BD

这段代码我也试了,对于桌面的快捷方式不是都好用,有的桌面快捷方式好用,有的就不好用

好用的就显示出起始位置了,不好用的就是如上那样

TOP

回复 7# DAIC


    关键是
'find /i ":" QQ游戏.lnk ^| findstr /i "^[a-z]:"'
不明白这段代码的意思,所以只能改个文件名试试

TOP

回复 10# llqcnw
  1. find /i ":" QQ游戏.lnk
复制代码
意思是在QQ游戏.lnk这个文件里面查找包含冒号的行
你得保证.bat和QQ游戏.lnk放在同一个目录下面

TOP

回复 11# DAIC


    在lnk里查找包含冒号的行 这个我知道,应该是找出路径的那一行吧(路径里 :\里包含冒号)

  后面那个findstr语句是什么意思?

TOP

回复 12# llqcnw


    查找以字母a-z开头的后面跟着一个冒号的行

TOP

本帖最后由 llqcnw 于 2013-9-2 22:01 编辑

回复 13# DAIC


    哦,那基本明白了,

还有个问题,如果lnk文件的文件名中包含。(点)或_(下划线)或 (空格)等的要怎么处理
以及bat文件和lnk文件不在同一目录中的处理方法


我用同样的代码在两个文件夹内试验,可结果却不一样(lnk文件名做了相应的更改)

C:\Documents and Settings\All Users\「开始」菜单\程序\迅雷软件\迅雷网游加速器   在这里执行的结果是路径
C:\Documents and Settings\All Users\「开始」菜单\程序\盛大网络\龙之谷           在这里执行的结果是“ECHO处于关闭状态”不显示路径

这是为什么?

TOP

回复 14# llqcnw


还有个问题,如果lnk文件的文件名中包含。(点)或_(下划线)或 (空格)等的要怎么处理

8楼的代码可以处理这个情况。如果你遇到了无法处理的,请把结果贴出来看看。
以及bat文件和lnk文件不在同一目录中的处理方法

使用完整路径
  1. find /i ":" "C:\test\QQ游戏.lnk"
复制代码
我用同样的代码在两个文件夹内试验,可结果却不一样(lnk文件名做了相应的更改)
  1. cd /d "C:\Documents and Settings\All Users\「开始」菜单\程序\盛大网络\龙之谷"
  2. dir
  3. find /i ":" *.lnk
复制代码
在CMD窗口手工依次执行上面的三个命令,把结果贴出来看看。

TOP

返回列表