批量替换快捷方式目的路径的VBS脚本

可以替换指定目录及其子目录下所有的快捷方式,自己指定存放快捷方式的路径、要被替换的字符串和希望替换成的字符串,然后双击即可运行。

下面为代码,不很复杂,:)

代码如下:

On Error Resume Next 
'替换某文件夹及其子文件夹下的所有快捷方式的指向路径

strFolderPath="D:\Program Files\TrueLaunchBar\Shortcut\File\ Style" '快捷方式的路径 
strToReplace="\SOFTWARE\" '被替环的字符串 
strReplace="\[Software]\" '替换成的字符串

Set wshShell = CreateObject("Shell.Application")  
Set wshFSO = CreateObject("Scripting.FileSystemObject")

AlterSubFolders wshFSO.GetFolder(strFolderPath)

Sub AlterSubFolders(Folder)

Set npFolder = wshShell.Namespace (Folder.Path) 
Set allFiles=Folder.Files

For Each lnkFile In allFiles 
'Wscript.Echo lnkFile.Name 
If InStrRev(UCase(lnkFile.Name), ".LNK") <> 0 Then '扩展名是否快捷方式 
Set lnkItem = npFolder.ParseName(lnkFile.Name)  
Set lnkItemLink = lnkItem.GetLink  
'Wscript.Echo """"&lnkItemLink.Path&""""  
lnkItemLink.Path = Replace("""" & lnkItemLink.Path & """",strToReplace,strReplace) 
lnkItemLink.WorkingDirectory = Replace("""" & lnkItemLink.WorkingDirectory & """",strToReplace,strReplace) 
lnkItemLink.Save() 
End If 
Next

For Each Subfolder in Folder.SubFolders 
'Wscript.Echo "Folder" & Subfolder.Path 
Set npFolder = wshShell.Namespace (Subfolder.Path) 
Set objFolder = wshFSO.GetFolder (Subfolder.Path) 
Set allFiles = objFolder.Files

For Each lnkFile in allFiles  
If InStrRev(UCase(lnkFile.Name), ".LNK") <> 0 Then '扩展名是否快捷方式 
Set lnkItem = npFolder.ParseName(lnkFile.Name) 
Set lnkItemLink = lnkItem.GetLink 
'Wscript.Echo """"&lnkItemLink.Path&"""" 
lnkItemLink.Path = Replace("""" & lnkItemLink.Path & """",strToReplace,strReplace) 
lnkItemLink.WorkingDirectory = Replace("""" & lnkItemLink.WorkingDirectory & """",strToReplace,strReplace) 
lnkItemLink.Save() 
End If 
Next

AlterSubFolders Subfolder

Next 
End Sub

(0)

相关推荐

  • VBS 脚本不能运行 提示Windows无法访问指定设备路径或文件

    昨天下载并且安装了Updater Application Block后,需要执行一个Deploy.vbs的文件,鄙人才疏学浅,这个小问题竟然也花费了我不少心机. 现在把结论共享一下. 首先,我的vbs文件关联已经被"豪杰"夺取了.我双击Deploy.vbs就会打开豪杰,比较郁闷.但是我用了打开方式,试了浏览器.cmd,都无济于事. 今天,我想到这个问题后,就有想法去Microsoft的News Group上去问一问.然后又去了CSDN的全文检索.果然很争气,我的关键字只是vbs,执行,

  • vbs下一些取特殊路径的方法总结

    1.用FSO的SpecialFolder常数 FSO的SpecialFolder常数依赖的函数为GetSpecialFolder(SpecialFolder),很遗憾的是,SpecialFolder常数只有3个,0-2,0对应WindowsFolder,就是你的Windows文件夹,如果你的系统装在C盘的话,那么返回的就是"C:\Windows"这个路径字符串.1对应SystemFolder,GetSpecialFolder(1)返回"C:\Windows\system32&

  • vbs中获取脚本当前路径的2个方法

    方法一: 复制代码 代码如下: currentpath = createobject("Scripting.FileSystemObject").GetFolder(".").Path 方法二: 复制代码 代码如下: currentpath = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path

  • vbs获取当前路径的代码

    CMD当前路径 复制代码 代码如下: test = createobject("Scripting.FileSystemObject").GetFolder(".").PathWscript.echo test 当前VBS路径 复制代码 代码如下: test = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.PathW

  • VBS中解决带空格路径的三种方法

    方法一: Set wshell=CreateObject("WScript.Shell") wshell.Run """C:\Program Files\360\360se\360se.exe""",5,True Set wshell = Nothing 方法二: temp="C:\Program Files\360\360se3\360se.exe" path = Chr(34) & temp &

  • 用vbs实现的确定共享文件夹的本地路径?

    如何确定共享文件夹的本地路径? 问: 您好,脚本专家!如果有 UNC 路径(例如 \\server1\test),可以使用脚本确定共享文件夹(例如 C:\Scripts\Test 文件夹)的本地路径吗? -- JVK 答: 您好,JVK.是的,您说得没错 噢,对了:我们几乎忘了.您能使用脚本确定共享文件夹的本地路径吗?您当然可以(尽管我们不知道为什么在棒球赛季期间还有人有闲心做这些).但如果这确实是您想要做的,那么这就告诉您该如何去做: 复制代码 代码如下: strPath = "\\atl-f

  • 批量替换快捷方式目的路径的VBS脚本

    可以替换指定目录及其子目录下所有的快捷方式,自己指定存放快捷方式的路径.要被替换的字符串和希望替换成的字符串,然后双击即可运行. 下面为代码,不很复杂,:) 复制代码 代码如下: On Error Resume Next  '替换某文件夹及其子文件夹下的所有快捷方式的指向路径 strFolderPath="D:\Program Files\TrueLaunchBar\Shortcut\File\ Style" '快捷方式的路径  strToReplace="\SOFTWARE

  • 如何批量替换相对地址为绝对地址(利用bat批处理实现)

    如果你的url链接是相对路径"static/mapi.css",你想把他批量替换成绝对路径"http://dev.baidu.com/wiki/static/map/cloud/static/mapi.css".那么,你可以这样做: 写一个PHP文件,把需要替换的网址写进去. 这个代码的意思就是,把#BASE_URL#替换成 http://api.map.baidu.com/lbsapi/cloud/ . 这句话的意思是,把resource文件里的内容替换一遍,然后

  • VBS脚本实现遍历批量替换多目录多文件内容的代码

    有时候我们需要将一个目录与子目录中的多个htm网页文件实现批量替换,这里就为大家分享一下 将以下代码复制到一个文本文档中,并将文本文档的后缀修改为.vbs,直接运行即可 Set WshShell = CreateObject("Wscript.Shell") WshShell.Run "cmd /c dir /s/b *.htm > list.htm",vbHide Wscript.Sleep 1000 sFile = "list.htm"

  • vbs脚本实现批量转换文件编码

    最近需要使用SourceInsight查看分析在Linux系统下开发的项目代码,我们知道Linux系统中文本文件默认编码格式是UTF-8,而Windows中文系统中的默认编码格式是Gb2312.系统内的编码格式有所区别倒无伤大雅,关键的是SourceInsight竟不支持UTF-8,导致项目代码内的中文注释全部乱码! 既然SourceInsight不支持UTF-8编码的文件,那我们就得想办法将UTF-8的代码文件转化为GB2312编码的.首先想到的是到网上搜一下"批量编码转换工具",结

  • Python脚本操作Excel实现批量替换功能

    大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换. 使用的工具 Openpyxl,一个处理excel的python库,处理excel,其实针对的就是WorkBook,Sheet,Cell这三个最根本的元素~ 明确需求原始excel如下 我们的目标是把下面excel工作表的sheet1表页A列的内容"替换我吧"批量替换为B列的"我用来替换的x号选手" 实现替换后的效果图,C列为B列替换A列的指定内容后的结果 实现以上功能的同时,我也实现excel

  • Vbs脚本经典教材(最全的资料还是MSDN)

      -为什么要使用Vbs? 在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动计算机第一件事情就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某些数据进行整理,把各式各样的数据按照某种规则排列起来--.这些事情重复.琐碎,使人容易疲劳. 第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往往事倍功半,

  • VBS脚本病毒原理分析与防范

    网络的流行,让我们的世界变得更加美好,但它也有让人不愉快的时候.当您收到一封主题为"I Love You"的邮件,用兴奋得几乎快发抖的鼠标去点击附件的时候:当您浏览一个信任的网站之后,发现打开每个文件夹的速度非常慢的时候,您是否察觉病毒已经闯进了您的世界呢?2000年5月4日欧美爆发的"爱虫"网络蠕虫病毒.由于通过电子邮件系统传播,爱虫病毒在短短几天内狂袭全球数百万计的电脑.微软.Intel等在内的众多大型企业网络系统瘫痪,全球经济损失达几十亿美元.而去年爆发的新欢

  • VBS脚本和BAT批处理删除自身的方法

    VBS脚本和BAT批处理自身删除的方法(自杀) 删除自身之:VBS 把下面的脚本保存为selfkill.vbs或selfkill.vbe: 复制代码 代码如下: Set fso = CreateObject("Scripting.FileSystemObject") f = fso.DeleteFile(WScript.ScriptName) WScript.Echo( WScript.ScriptName) 然后运行它,是不是发现selfkill.vbs神奇的消失啦?而后面的对话框却

  • 使用vbs脚本添加程序到自启动项的代码

    因编辑器过滤了一些字符,比如&,所以下面的脚本可能会运行错误..看官添加&&这个字符就可以了. vbs脚本的功能呢是很多的,不过有时候我们只需要其中的某些功能,今天我突然想研究下怎么用vbs脚本实现添加程序到自启动项...... 首先来一段吧... 复制代码 代码如下: '========================================================================== ' ' VBScript Source File -- Cre

  • [Perl]文字/代码批量替换工具

    Perl脚本batchReplace.pl可以用来批量替换文件中的文字/代码.可在指定目录中查找指定类型的文件,并递归检查子目录:在输出文件时复制输入文件的目录结构. [附件]Win32应用程序batchReplace.exe是由Perl脚本编译产生的可执行程序,不需安装Perl运行环境即可执行. 在命令行中使用 batchReplace.exe[ -i 输入文件路径(或包含文件的目录)][ -o 输出文件位置(文件或目录)][ -c 批量输入文件的扩展名,以"."开始,多个扩展名之间

随机推荐