无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2847|回复: 15
打印 上一主题 下一主题

reg在for命令查询注册表策略值问题

[复制链接]
跳转到指定楼层
1#
发表于 2023-11-7 14:56:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yjqd 于 2023-11-7 14:58 编辑

@echo off
echo.
for  /f "delims=" %%a in ('REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ProductOptions" /v ProductPolicy') do (
        echo %%a
)
pause

结果只出现项名:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ProductOptions

ProductPolicy的值没出来,命令中ProductPolicy后面加上^|find /i "ProductPolicy"又能查询到ProductPolicy的值

for  /f "delims=" %%a in ('REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ProductOptions" /v ProductPolicy^|find /i "ProductPolicy"') do (
        echo %%a
)


是怎么回事
2#
发表于 2023-11-7 15:14:08 | 只看该作者
双引号去掉

点评

不是双引号问题  发表于 2023-11-7 15:18
回复

使用道具 举报

3#
发表于 2023-11-7 16:34:30 | 只看该作者
1 数值太长,无法赋值。
2 数值截断(4k)可以赋值。

点评

4k,怎么截断呢  发表于 2023-11-7 17:21
回复

使用道具 举报

4#
发表于 2023-11-7 17:30:51 | 只看该作者
本帖最后由 hxwgz 于 2023-11-7 18:05 编辑

可能 find 命令,一行只能返回4095个字符。
回复

使用道具 举报

5#
发表于 2023-11-7 21:54:38 | 只看该作者
学习学习
回复

使用道具 举报

6#
发表于 2023-11-8 10:18:47 | 只看该作者
批处理命令有字符限制。
` 8192 characters command line limit`

我试了下本地 ProductPolicy 值有 40KB.



点评

为什么加了^|find /i "ProductPolicy"又能查询出来呢  发表于 2023-11-8 10:43
回复

使用道具 举报

7#
发表于 2023-11-8 10:49:24 | 只看该作者
  1. REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ProductOptions" /v ProductPolicy|find /i "ProductPolicy

  2. REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ProductOptions" /v ProductPolicy
复制代码



加了find 管道后,偷出被截断了一大部分。
你可以通过 执行两条命令明显看到, 没加find 的输出花费更多得时间 显示在控制台界面上。

点评

确实如你所说,加find后输出的数值少太多 我将两命令分别输出到文本,没加find输出的文本33.7kb,加find输出的文本3.99kb 当初命令加find输出时,看到命令窗口出现许多数值,就以为全部都查询出来了 但不加  详情 回复 发表于 2023-11-8 11:08
回复

使用道具 举报

8#
 楼主| 发表于 2023-11-8 11:08:00 | 只看该作者
junyee 发表于 2023-11-8 10:49
加了find 管道后,偷出被截断了一大部分。
你可以通过 执行两条命令明显看到, 没加find 的输出花费 ...

确实如你所说,加find后输出的数值少太多
我将两命令分别输出到文本,没加find输出的文本33.7kb,加find输出的文本3.99kb

当初命令加find输出时,看到命令窗口出现许多数值,就以为全部都查询出来了


但不加find为什么不出现8192个字符呢,却只出现项名:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ProductOptions
至少也该出现点ProductPolicy的数据吧

点评

见我第6层的回贴! echo %%a %%a 展开后超过 ` 8192 characters command line limit` 了。  详情 回复 发表于 2023-11-8 12:35
回复

使用道具 举报

9#
发表于 2023-11-8 12:35:21 | 只看该作者
yjqd 发表于 2023-11-8 11:08
确实如你所说,加find后输出的数值少太多
我将两命令分别输出到文本,没加find输出的文本33.7kb,加find ...

见我第6层的回贴!

echo %%a

%%a 展开后超过 ` 8192 characters command line limit` 了。

点评

谢谢  发表于 2023-11-8 12:47
回复

使用道具 举报

10#
发表于 2024-2-14 12:41:38 | 只看该作者
学习学习
回复

使用道具 举报

11#
发表于 2024-2-18 20:09:49 来自手机 | 只看该作者
学习了
回复

使用道具 举报

12#
发表于 2024-2-18 21:54:09 | 只看该作者
相当于传递成文件,再 type 。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 11:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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