中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 18:10
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助] 如何取出lnk内的实际路径 (VBS)
可打印版本  936 / 13
第1楼 sylovanas 发表于 2008-04-01 22:41
初级用户 发帖 42 积分 107
[求助] 如何取出lnk内的实际路径 (VBS)
搜索过文批处理可用find ":\"来处理

但常常会碰到如
W
i
n
d
o
w
s
\
1
2
3
.
e
x
e
C:\
C:\windows\123.exe
上面位置不一定排序不一定
但我只要取123.exe那一行,目前判断是没办法所以想用vbs来提取看看
但vbs我不懂不知道有没有高人可以帮忙处理看看
第2楼 abcd 发表于 2008-04-02 01:23
银牌会员 发帖 739 积分 1,436
第3楼 abcd 发表于 2008-04-02 02:00
银牌会员 发帖 739 积分 1,436
第4楼 sylovanas 发表于 2008-04-02 02:02
初级用户 发帖 42 积分 107
感谢

如果说要将他结果自动写入文件的话要怎么改呢?

是不是改 msgbox oShellLink.TargetPath 这一段?
第5楼 sylovanas 发表于 2008-04-02 02:07
初级用户 发帖 42 积分 107
这个是我之前写的代码,用来抓启动内的快捷

不过有部分快捷会有问题
有用第三方工具sed和grep

dir /a/b "%startup%" >.\temp\startup1.1
for /f "tokens=*" %%a in (.\temp\startup1.1) do echo %startup%\%%a>>.\temp\startup1.2
dir /a/b "%startup1%" >.\temp\startup1.1
for /f "tokens=*" %%a in (.\temp\startup1.1) do echo %startup1%\%%a>>.\temp\startup1.2

if exist .\temp\startup1.2 for /f "tokens=*" %%a in (.\temp\startup1.2) do echo %%~a|grep -iq "\.lnk$" && (
find ":\" "%%~a"|sed -r "s/^ +//;/^.:\\/!d" >.\temp\startup1.3
echo %%~taa %%~a>>.\temp\startup1.5
for /f "tokens=*" %%g in (.\temp\startup1.3) do echo %%~tag %%~g|sed "s/.*/ => &/" >>.\temp\startup1.5
) || (echo %%~taa %%~a)>>.\temp\startup1.5

if exist .\temp\startup1.5 sed "s/^ => .*$/&\n/" .\temp\startup1.5|more >>log.txt
第6楼 sylovanas 发表于 2008-04-02 02:11
初级用户 发帖 42 积分 107
Originally posted by abcd at 2008-4-2 02:07 AM:
第7楼 abcd 发表于 2008-04-02 02:19
银牌会员 发帖 739 积分 1,436
第8楼 sylovanas 发表于 2008-04-02 02:26
初级用户 发帖 42 积分 107
Originally posted by abcd at 2008-4-2 02:19 AM:
第9楼 sylovanas 发表于 2008-04-02 02:31
初级用户 发帖 42 积分 107
Originally posted by abcd at 2008-4-2 02:22 AM:

不好意思,手误,拼写错误了。现已改正。

未测试



感谢

不过刚刚有再测试

这一次跳
行:4
字元:40
错误:无法判定字串常数的结尾
程式码:800A0409

[ Last edited by sylovanas on 2008-4-2 at 02:41 AM ]
第10楼 sylovanas 发表于 2008-04-02 02:41
初级用户 发帖 42 积分 107


不过lnk档直接压缩似乎有问题的样子

我先将副档名改为lnk1,下载之后先将副档名改回lnk之后在测试


http://upload.cn-dos.net/img/210.rar

[ Last edited by sylovanas on 2008-4-2 at 02:44 AM ]
第11楼 sylovanas 发表于 2008-04-02 02:51
初级用户 发帖 42 积分 107
是的该档案连接是有效的
连接的档案也要吗?

那我就一并上传试看看了

http://upload.cn-dos.net/img/211.rar

放置的位置是在
%CommonProgramFiles%\VideoMate

这个是那个快捷连接的主档案

[ Last edited by sylovanas on 2008-4-2 at 02:52 AM ]
第12楼 abcd 发表于 2008-04-02 03:01
银牌会员 发帖 739 积分 1,436
发现只要快捷方式的"起始位置“为空,

用more "%~s1"|findstr ":\\."

确实不能获取路径的。

填上位置后,就可以了。

即使再次删除起始位置,一样也能找到的

[ Last edited by abcd on 2008-4-2 at 03:05 AM ]
第13楼 sylovanas 发表于 2008-04-02 03:18
初级用户 发帖 42 积分 107


真是怪

还是非常感谢abcd

这个批次要用在很多台电脑上面的,没办法说手动去增加起始位置是比较麻烦的地方

abcd也早点休息吧,太晚睡对身体不好
第14楼 nikekkaa 发表于 2008-05-27 13:19
新手上路 发帖 3 积分 6
找了半天,没想到就在身边~谢谢2楼分享的.
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023