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

[注册表类] BAT未提取到注册表值的IF判断闪退,求指导,谢谢

本帖最后由 Nano 于 2018-6-24 23:32 编辑
  1. set "str=HKEY_CURRENT_USER\Software\iStock\System"
  2. for /f "tokens=2*" %%a in ('reg query "%str%" /v PrevUserID 2^>nul') do set "a=%%b"
  3. set /a uid1=%a%
  4. if defined uid1 (
  5.     echo 从注册表提取用户ID%uid1%成功.
  6.     if %uid1%==100058 set UiD2=201579
  7.     if %uid1%==201579 set UiD2=100058
  8. )else (
  9.     echo 未检测到用户ID%uid1%.
  10.     set uid1=100058
  11.     set UiD2=201579
  12. )
复制代码
错误提示 C:\>set /a uid1=
找不到操作数。
此时不应有 set。

本帖最后由 Nano 于 2018-6-24 23:32 编辑

回复 2# Batcher
按此修改执行错误为:C:\>for /F "tokens=2*" %a in ('reg query "HKEY_CURRENT_USER\Software\iStock\System" /v PrevUserID 2>nul') do set "uid1=%b"
此时不应有 set。

TOP

回复 4# Batcher
1.txt为空值,对应注册表键值为空,可不可以实现检测注册表有对应值取其值为变量值,没有则变量赋值为100058

TOP

回复 6# Batcher


      echo 未检测到用户ID%uid1%.
    set uid1=100058
    set UiD2=201579

这个不是没用了,能实现echo 未检测到用户ID%uid1%给UiD2赋值么

TOP

返回列表