【问题标题】:Batch File to Log REG complex value (data)记录 REG 复数值(数据)的批处理文件
【发布时间】:2015-04-17 10:17:20
【问题描述】:

我的问题是我想用注册表值设置一个变量 但是数据值本身使用令牌很复杂。 我试过用:

for /F "tokens=3* delims=" %%g IN 
    ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" 
    /v Path  ^| findstr /i Path') do set OLD_SYSTEM_PATH=%%g

但输出是完整的 REG 值,包括“Path”和“Type

任何想法将不胜感激

【问题讨论】:

    标签: batch-file for-loop cmd window


    【解决方案1】:
    for /F "tokens=2*" %%g IN ('
        reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path 
        ^| findstr /i /l "Path"
    ') do set "OLD_SYSTEM_PATH=%%h"
    

    删除delims 子句以使用空格和制表符作为分隔符,向指示的for 可替换参数(%%g)请求第二个输入标记(类型),并将该行的其余部分请求到下一个for可替换参数(%%h)

    【讨论】:

      【解决方案2】:
      @echo off    
      FOR /F "tokens=3 skip=1 delims= " %%a IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do (
      set OLD_SYSTEM_PATH=%%a 
      )
       echo %old_system_path%
      

      【讨论】:

        猜你喜欢
        • 2022-01-17
        • 1970-01-01
        • 2022-01-23
        • 2014-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-11
        相关资源
        最近更新 更多