无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6175|回复: 10

[分享] 因盘符变动一次性批量修改快捷方式!

  [复制链接]
发表于 2020-6-29 18:02:49 | 显示全部楼层 |阅读模式
本帖最后由 sairen139 于 2020-6-29 18:07 编辑

因盘符变动一次性批量修改快捷方式里的盘符适用于大量绿色软件和Ramos内存系统的更改需求
@echo off
setlocal enabledelayedexpansion
rem 假设原来的盘符是C
set oldDrive=C:\
rem 假设新的盘符是D
set newDrive=D:\
for /f %%a in ('dir *.lnk /s /b') do  (
        for /f "tokens=2 delims==" %%h in ('shortcut /f:"%%a" /a:q ^| findstr "TargetPath="') do (
                set target=%%h
        )
        for /f "tokens=2 delims==" %%h in ('shortcut /f:"%%a" /a:q ^| findstr "WorkingDirectory="') do (
                set working=%%h
        )
        set target=!target:%oldDrive%=%newDrive%!
        set working=!working:%oldDrive%=%newDrive%!
        shortcut /f:"%%a" /a:e /t:"!target!" /w:"!working!"
)

shortcut.exe下载地址:
http://www.bathome.net/thread-4020-1-1.html

评分

参与人数 1无忧币 +2 收起 理由
being + 2 赞一个!

查看全部评分

 楼主| 发表于 2020-6-29 18:07:47 | 显示全部楼层
本帖最后由 sairen139 于 2020-6-29 18:10 编辑

@echo off
setlocal enabledelayedexpansion
rem 假设原来的盘符是C
set oldDrive=C:\
rem 假设新的盘符是D
set newDrive=D:\

for %%a in (*.lnk) do (

        for /f "tokens=2 delims==" %%h in ('shortcut /f:"%%a" /a:q ^| findstr "TargetPath="') do (
                set target=%%h
        )
        for /f "tokens=2 delims==" %%h in ('shortcut /f:"%%a" /a:q ^| findstr "WorkingDirectory="') do (
                set working=%%h
        )
        set target=!target:%oldDrive%=%newDrive%!
        set working=!working:%oldDrive%=%newDrive%!
        shortcut /f:"%%a" /a:e /t:"!target!" /w:"!working!"
)

shortcut.exe下载地址:
http://www.bathome.net/thread-4020-1-1.html
这个只改根目录,不改子目录下的lnk快捷方式。
回复

使用道具 举报

发表于 2020-6-29 18:55:51 来自手机 | 显示全部楼层
vbs简单。
回复

使用道具 举报

发表于 2020-6-30 22:54:17 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

发表于 2020-12-8 22:41:58 | 显示全部楼层
非常感谢
回复

使用道具 举报

发表于 2020-12-9 11:11:46 | 显示全部楼层
(如果我记得不错的话,快捷方式是可以在盘符变化的情况下正常工作的。。。只要是手工创建的,它就会包含目标驱动器的匹配信息,当路径无效时就会使用这个信息去寻找正确的驱动器。。。。

点评

最好设计一种方法不管盘符如何变化,快捷方式或者什么指向性的方法都能无视盘符变化还能正常打开相应的目标文件或者程序  详情 回复 发表于 2020-12-14 14:55
不同的ramos内存里盘符会变化,或者pe里想使用原硬盘上的快捷方式,不知道你有没有更好的解决这类问题的方法?如果有的话请不吝赐教一二,先行谢过!  详情 回复 发表于 2020-12-14 14:51
回复

使用道具 举报

 楼主| 发表于 2020-12-14 14:51:49 | 显示全部楼层
CodeHz 发表于 2020-12-9 11:11
(如果我记得不错的话,快捷方式是可以在盘符变化的情况下正常工作的。。。只要是手工创建的,它就会包含目 ...

不同的ramos内存里盘符会变化,或者pe里想使用原硬盘上的快捷方式,不知道你有没有更好的解决这类问题的方法?如果有的话请不吝赐教一二,先行谢过!
回复

使用道具 举报

 楼主| 发表于 2020-12-14 14:55:42 | 显示全部楼层
CodeHz 发表于 2020-12-9 11:11
(如果我记得不错的话,快捷方式是可以在盘符变化的情况下正常工作的。。。只要是手工创建的,它就会包含目 ...

最好设计一种方法不管盘符如何变化,快捷方式或者什么指向性的方法都能无视盘符变化还能正常打开相应的目标文件或者程序
回复

使用道具 举报

发表于 2020-12-21 09:52:12 来自手机 | 显示全部楼层
顶你一下面
回复

使用道具 举报

发表于 2020-12-21 13:30:59 | 显示全部楼层
为啥不用系统变量,以前在网吧里应用过。

点评

主要想在pe里能用上原来硬盘上的工具的快捷方式,我比较喜欢搞不带维护工具的一百mb左右的pe放在esp分区里,pecmd有不想使用,所以想要快捷方式可以无视盘符变化的方法。  详情 回复 发表于 2020-12-21 14:14
回复

使用道具 举报

 楼主| 发表于 2020-12-21 14:14:07 | 显示全部楼层
江南一根葱 发表于 2020-12-21 13:30
为啥不用系统变量,以前在网吧里应用过。

主要想在pe里能用上原来硬盘上的工具的快捷方式,我比较喜欢搞不带维护工具的一百mb左右的pe放在esp分区里,pecmd又不想使用,所以想要一个快捷方式可以无视盘符变化也能正常打开相应工具的方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-19 10:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表