sairen139 发表于 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

sairen139 发表于 2020-6-29 18:07:47

本帖最后由 sairen139 于 2020-6-29 18:10 编辑

@echo offsetlocal enabledelayedexpansionrem 假设原来的盘符是Cset oldDrive=C:\rem 假设新的盘符是Dset 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简单。

wuyovooo 发表于 2020-6-30 22:54:17

谢谢分享。

freefaller 发表于 2020-12-8 22:41:58

非常感谢

CodeHz 发表于 2020-12-9 11:11:46

(如果我记得不错的话,快捷方式是可以在盘符变化的情况下正常工作的。。。只要是手工创建的,它就会包含目标驱动器的匹配信息,当路径无效时就会使用这个信息去寻找正确的驱动器。。。。

sairen139 发表于 2020-12-14 14:51:49

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

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

sairen139 发表于 2020-12-14 14:55:42

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

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

maghreb 发表于 2020-12-21 09:52:12

顶你一下面

江南一根葱 发表于 2020-12-21 13:30:59

为啥不用系统变量,以前在网吧里应用过。

sairen139 发表于 2020-12-21 14:14:07

江南一根葱 发表于 2020-12-21 13:30
为啥不用系统变量,以前在网吧里应用过。
主要想在pe里能用上原来硬盘上的工具的快捷方式,我比较喜欢搞不带维护工具的一百mb左右的pe放在esp分区里,pecmd又不想使用,所以想要一个快捷方式可以无视盘符变化也能正常打开相应工具的方法。
页: [1]
查看完整版本: 因盘符变动一次性批量修改快捷方式!