[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 aloha20200628 于 2025-3-14 13:09 编辑

回复 1# yyz219

假设被替换的32-40字符链仅由数字和.构成
  1. sed -E "s/HKEY_USERS\\S-1-5-21[0-9\.]{32,40}\\/HKEY_CURRENT_USER\\/ig" "%注册表文件路径%"
复制代码
【修改注册表须谨慎】
1

评分人数

TOP

本帖最后由 aloha20200628 于 2025-3-14 19:32 编辑

回复 7# yyz219

提供的样本文件中的 32-40字符链包含的不是.字符而是-字符,故4楼代码须订正如下
  1. sed -E "s/HKEY_USERS\\S-1-5-21[0-9\.\-]{32,40}\\/HKEY_CURRENT_USER\\/ig" "%注册表文件路径%"
复制代码
如果要被替换的这段32-40字符链仅包含数字和.-这两个非数值字符,亦可用以下代码,其自动兼容 1-n 个字符长度...
  1. sed -E "s/HKEY_USERS\\S-1-5-21[0-9\.\-]+\\/HKEY_CURRENT_USER\\/ig" "%注册表文件路径%"
复制代码
1

评分人数

TOP

回复 9# yyz219

代码中匹配的是 S-1-5-21 其后的 -2765962963-2952424663-14726149-500 字符链,我测试没有问题。

TOP

回复 12# yyz219

直接在命令行测试以下这行,看看是啥结果?
  1. C:\temp>echo,[HKEY_USERS\S-1-5-21-2765962963-2952424663-14726149-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband]|sed -E "s/HKEY_USERS\\S-1-5-21[0-9\.\-]+\\/HKEY_CURRENT_USER\\/ig"
复制代码

TOP

本帖最后由 aloha20200628 于 2025-3-14 20:13 编辑

回复 9# yyz219

这段正则匹配式很简单([0-9\.\-] 与 [^\\] 对匹配本帖是同效的),但楼主的测试结果成否表明与是否采用 -i 参数有关?这也许与 sed.exe 版本 ... 本人用的是从本坛第三方下载的 sed 4.9版 sed (GNU sed) 4.9

TOP

本帖最后由 aloha20200628 于 2025-3-15 12:13 编辑

回复 18# yyz219

是的...其实就差一个参数 -i,不用此参数就不会自动修改源文件,须用重定向文件才可保存修改结果,用此参数即可直接修改源文件... 解答论坛各类问题要分门别类的选用相应的脚本和命令行工具,对这些五花八门的命令行参数真得细心 ‘管理’,跟大厨料理各式菜品,中医熟记各式药方一样 ...
1

评分人数

TOP

返回列表