如何从以下输入中检索字符串“C:\ Program Files(x86)\ Stupid \ MS \”?
HKEY_CURRENT_USER\Software\Stupid\MS`
installpath REG_SZ C:\Program Files (x86)\Stupid\MS\`
请使用Windows bat文件。
我的方式:
@echo off
Setlocal enabledelayedexpansion
for /f "tokens=2,* delims=:" %%i in ('reg query "HKEY_CURRENT_USER\Software\Stupid\MS" /v "installpath"') do (
echo %%i
)
pause
结果是:\Program Files (x86)\Stupid\MS\
答案 0 :(得分:1)
req query "HKEY_CURRENT_USER\Software\Stupid\MS" /v "installpath"
在我的xp上返回此信息(抱歉,我目前没有更新的内容)
! REG.EXE VERSION 3.0
HKEY_CURRENT_USER\Software\Stupid\MS
installpath REG_SZ C:\Program Files (x86)\Stupid\MS
当使用delim的默认值(空格)时,我们实际需要的是从最后一行开始的第三个和后续标记。 “第三和以下”是tokens=3*
。第三个令牌将在%% i中可用,%% j中的“和后续”。这封信是自动分配的。
不幸的是,第一行还有第三行和后续令牌,因此我们需要排除第一行。我们可以通过使用eol选项来排除以“!”开头的行。 “Setlocal enabledelayedexpansion”不会更改此litte批处理文件中的任何内容,因此我将其删除。
总结:这对我有用:
@echo off
for /f "eol=! tokens=3*" %%i in ('reg query "HKEY_CURRENT_USER\Software\Conceptworld\Piky\Settings" /v "installpath"') do echo %%i %%j
答案 1 :(得分:1)
这应该有效 - 在显示TAB的位置放置制表符并留下空格。
@echo off
for /f "tokens=2,* delims=:TAB " %%i in ('reg query "HKEY_CURRENT_USER\Software\Stupid\MS" /v "installpath"') do (
set "var=%%j"
)
echo "%var%"
pause