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

[注册表类] 【已解决】批处理如何判断某个注册表项下面是不是空的,然后执行一些东西

[复制链接]
发表于 2015-10-11 21:32:56 | 显示全部楼层
回复 10# solan


    请提供注册表reg文件供参考
 楼主| 发表于 2015-10-12 07:34:44 | 显示全部楼层
附件
 楼主| 发表于 2015-10-12 08:18:48 | 显示全部楼层
回复 15# pcl_test
就是删除不了多版本共用的所有文件和相应的注册表,比如:没有删除nx_flex文件夹、没有删除Unigraphics Solutions这个项。。。。。也就是x1和x2好像没执行,这个批处理执行时一甩而过,我猜这部分代码肯定有问题
  1. @echo off
  2. reg query "HKEY_CURRENT_USER\Software\Unigraphics Solutions\NX" | findstr "HKEY"
  3. if errorlevel 1 (
  4.     goto exit
  5. ) else (
  6.     tasklist | findstr "ugslmd.exe" && goto x1 || goto x2
  7. )
复制代码
用其他的代码,也是如此
  1. @echo off
  2. reg query "HKEY_CURRENT_USER\Software\Unigraphics Solutions\NX"
  3. if errorlevel 1 (
  4.        tasklist | find "ugslmd.exe"
  5.        if not errorlevel 1 (goto x1) else (goto x2)
  6. )else goto exit
复制代码
  1. @echo off
  2. for /f "tokens=2" %%a in ('reg query "HKEY_CURRENT_USER\Software\Unigraphics Solutions\NX"') do set /a n=%%a
  3. if %n%=0 (goto exit) else (
  4. tasklist | find "ugslmd.exe
  5. if not errorlevel 1 (goto x1) else (goto x2)
  6. )
复制代码
所以我不知道该怎么写了,x1、x2我一直没改,就是10楼的x1、x2
发表于 2015-10-12 09:39:23 | 显示全部楼层
回复 18# solan

goto exit是什么?仔细参看8楼DAIC的代码,要么直接exit
发表于 2015-10-12 14:10:57 | 显示全部楼层
本帖最后由 /zhqsystem/zhq 于 2015-10-12 14:18 编辑

回复 17# solan
没有一个我要的数据,暂时先用这个判断吧

  1. @echo off
  2. set "reg_key=HKEY_CURRENT_USER\Software\Unigraphics Solutions"
  3. set "n=0"
  4. for /f "delims=" %%i in ('reg query "%reg_key%" /s') do set/a n+=1
  5. if %n% geq 1 echo 注册表有多个项或值
  6. if %n% lss 1  echo 注册表错误或无数据
  7. pause
复制代码
 楼主| 发表于 2015-10-13 13:03:37 | 显示全部楼层
回复 20# /zhqsystem/zhq
谢谢回复,你的代码经过测试是正确的,但是怎么让你的代码来执行10楼的x1和x2呢?
发表于 2015-10-13 20:50:55 | 显示全部楼层
回复 21# solan
当注册表有值时继续reg query来查询相应的值,reg query "......" >nul 2>nul&&((有执行)||(没有执行))
 楼主| 发表于 2015-10-29 08:17:40 | 显示全部楼层
重新安装系统后,再执行下面代码测试通过
  1. @echo off
  2. color 1e
  3. reg query "HKEY_CURRENT_USER\Software\Unigraphics Solutions\NX" | findstr "HKEY"
  4. if errorlevel 1 (
  5.     tasklist | findstr "ugslmd.exe" && goto x1 || goto x2
  6. ) else (
  7.        goto:eof
  8. )
  9. :x1
  10. .......
  11. goto x2

  12. :x2
  13. ....
复制代码
发表于 2015-10-29 12:44:39 | 显示全部楼层
本帖最后由 terse 于 2015-10-29 12:46 编辑
  1. reg query "HKEY_CURRENT_USER\Software\Unigraphics Solutions\NX" 2>nul | findstr . && goto end ||(
  2.       tasklist | findstr /ib ugslmd\.exe && goto x1|| goto :x2
  3. )
复制代码
 楼主| 发表于 2015-10-30 15:09:58 | 显示全部楼层
回复 24# terse
不得不承认,您的代码更漂亮,哦,当然测试也通过啦,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:22 , Processed in 0.011040 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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