中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求批量修改快捷方式路径脚本
作者:
标题: 求批量修改快捷方式路径脚本 上一主题 | 下一主题
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『楼 主』:  求批量修改快捷方式路径脚本

如题
已知路径为D:\Tencent\QQ\QQ.exe,QQGAME.exe,QQ飞车.exe.....
需要修改为D:\Netgame\QQ\QQ.exe,QQGAME.exe,QQ飞车.exe...
本人有点懒,以上内容简写请看明白,请见谅

[ Last edited by jiulong on 2008-5-8 at 08:56 PM ]

2008-5-8 20:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

是修改 lnk 的快捷方式还是直接修改文本文件的?

2008-5-8 21:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『第 3 楼』:  

文件文件就好办了,难就难在快捷方式的

2008-5-8 22:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

用VBS……
有操作快捷方式对象

2008-5-8 22:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『第 5 楼』:  

VBS创建的会,修改的不会呀

2008-5-9 14:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

创建的那个先读取信息……
然后删除掉LNK
再创建……把之前读取的信息重写……
把路径替换下……

2008-5-9 16:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 7 楼』:  

使用VBS可以批量实现你的要求。
Option Explicit
Dim oldpath,newpath

oldpath = "D:\Tencent"           '设置原路径中将被替换的内容
newpath = "D:\Netgame"   '设置新路径中要使用的内容

Dim Wsh,fso
Set Wsh = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Dim ji_1,ji_2,Folder
ji_1 = 0
ji_2 = 0
Folder = Wsh.CurrentDirectory
if Ask("将要修改"&chr(34)& Folder &chr(34)&"里的所有快捷方,是否继续") then
    Dim f,fc,f1,ext
    Set f = fso.GetFolder(Folder)
    Set fc = f.Files
    For Each f1 in fc
       ext = LCase(fso.GetExtensionName(f1))
       if ext = "lnk" then
          ji_1 = ji_1 + 1
          call Doit(f1)
       end if
    Next
end if

Set WSH = Nothing
msgbox "找到 "&ji_1&" 个快捷方式"&vbCrLf&"修改 "&ji_2&" 个快捷方式",64,"执行完毕"
WScript.quit

Sub Doit(strlnk)
Dim oShlnk
    Set oShlnk = Wsh.CreateShortcut(strlnk)
If Instr(oShLnk.TargetPath,oldpath) > 0 Then
        oShLnk.TargetPath = Replace(oShLnk.TargetPath,oldpath,newpath)
        oShLnk.Save
        ji_2 = ji_2 + 1
End If
    Set oShLnk=NoThing
End Sub

Function Ask(strAction)
    Dim intButton
    intButton = MsgBox(strAction,vbQuestion + vbYesNo,"询问")
    Ask = intButton = vbYes
End Function


2008-7-30 08:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 8 楼』:  

但是这个快捷方式,无法处理带有参数的快捷方式,也就是替换不了参数中的路径,如D:\CATIA\B17\intel_a\code\bin\CATSTART.exe -run CNEXT.exe -env CATIA_P3.V5R17.B17 -direnv D:\CATIA\CATEnv -nowindow 中的后面的参数D:\CATIA\CATEnv 无法别替换,所以我一直在找这样的方法和工具。

2008-7-30 09:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 9 楼』:  

你的问题我已经可以圆满的解决了,可以参考http://www.cn-dos.net/forum/view ... id=TUH4wS#pid290700
可能需要做些修改才能适合你的需要。

2008-8-4 08:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: