【语言-JavaScript】windows 下修改快捷方式的 起始位置 和 目标 (vb脚本)

本文介绍了一段VBS脚本代码,该脚本用于批量修改指定文件夹内所有快捷方式的目标路径和起始位置。通过设置旧路径和新路径变量,可以实现快捷方式路径的批量替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Option Explicit  
Dim oldpath,newpath  
'Dim 变量  
'Set 赋值  
'NoThing 释放内存  
'Function 函数  
'call 调用方法  
'Sub 方法  
'msgbox 消息框  
''''''''''''''''说明'''''''''''''''''  
'作用:批量修改快捷方式的“目标”和“起始位置”  
'使用方法:和需要修改的快捷方式放在同一个文件夹执行  
'''''''''''''''说明完'''''''''''''''''  
  
oldpath = "C:\Users\Hos\AppData\Local\Youdao\Dict\Application"           '设置原路径中将被替换的内容  
newpath = "C:\Users\Hos\AppData\Local\Youdao\Dict\Application"   '设置新路径中要使用的内容  
  
Dim Wsh,fso  
Set Wsh = WScript.CreateObject("WScript.Shell")  
Set fso = CreateObject("Scripting.FileSystemObject")  
Dim ji_1,ji_2,Folder,res  
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  
   'Ask("将要修改"&chr(34)& f1 &chr(34)&"里的快捷方式,是否继续")   
   '文件获取后缀名  
       ext = LCase(fso.GetExtensionName(f1))  
       'Ask("将要修改"&chr(34)& ext &chr(34)&"里的快捷方式,是否继续")  
       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)  
   'Ask("开始目录"&chr(34)& oShLnk.WorkingDirectory &chr(34)&"\n")  
   '判断开始目录是不是旧目录  
If Instr(oShLnk.WorkingDirectory,oldpath) > 0 Then  
   '替换链接程序  
    'Replace(父字符串,子字符串,用来替换子字符串的字符串)  
     oShLnk.TargetPath = Replace(oShLnk.TargetPath,oldpath,newpath)  
   '替换开始目录'  
    oShLnk.WorkingDirectory = Replace(oShLnk.WorkingDirectory,oldpath,newpath)  
       'Ask("目录"&chr(34)& ext &chr(34))  
       oShLnk.Save  
       ji_2 = ji_2 + 1  
End If  
   Set oShLnk=NoThing  
End Sub  
  
Function Ask(strAction)  
   Dim intButton  
   'msgBox(提示字符串,对话框按钮形式,对话框标题)  
   intButton = MsgBox(strAction,vbQuestion + vbYesNo,"询问")  
   Ask = intButton = vbYes  
End Function  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值