【问题标题】: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%