[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
最后你可加个目录判断
  1. @echo off
  2. set "s=vc"
  3. set "reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders /f \%s%\ /t REG_SZ"
  4. set "find=findstr/ic:\\%s%\\"
  5. for /f "tokens=*" %%i in ('"%reg%|%find%"') do set str=%%~dpi
  6. if defined str (echo(%str%) else echo,没有安装%s%软件
  7. pause
复制代码

TOP

本帖最后由 terse 于 2014-10-5 14:07 编辑

回复 3# 小智BAT
这个是查找注册表的 不是针对C盘的  既然vc可以 那会不会注册表里路径问题
是路径括号问题
变更下
  1. @echo off
  2. set "s=WFOActives"
  3. set "reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders /f \%s%\ /t REG_SZ"
  4. set "find=findstr/ic:\\%s%\\"
  5. for /f "tokens=*" %%i in ('"%reg%|%find%"') do (
  6.     for /f "tokens=*" %%a in ("%%i\..") do if "%%~nxa" == "%s%" set "str=%%~fa\"
  7. )
  8. if not defined str (echo,没有安装%s%软件)else echo(%str%
  9. pause
复制代码

TOP

本帖最后由 terse 于 2014-10-5 14:11 编辑

回复 6# 小智BAT
上面已修正 不知道是取最后含有 WFOActive 还是其他条件
错误提示 加个屏蔽吧  2>nul

TOP

本帖最后由 terse 于 2014-10-5 17:27 编辑

回复 8# 小智BAT
XP
  1. @echo off
  2. set "s=WFOActive"
  3. set "reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders"
  4. set "find=findstr/ic:\\%s%\\
  5. for /f "tokens=*" %%i in ('%reg% 2^>nul^|%find%^|findstr/ic:REG_SZ') do (
  6.     for /f "tokens=*" %%a in ("%%i\..") do if "%%~nxa" == "%s%" set "str=%%~fa\"
  7. )
  8. if not defined str (echo,没有安装%s%软件)else echo(%str%
  9. pause
复制代码

TOP

本帖最后由 terse 于 2014-10-5 17:28 编辑

回复 10# 小智BAT
什么情况 刚刚xp 测试可以 现在WIN7也行

草 这里第三行 最后多个 S   ...\Folderss"

TOP

本帖最后由 terse 于 2014-10-6 11:17 编辑

字符给吃了 换个方法试
  1. @echo off&setlocal enabledelayedexpansion
  2. set "s=V4用户认证"
  3. set "reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders"
  4. set "find=findstr/i \\%s%\\.*REG_SZ
  5. for /f "tokens=*" %%i in ('%reg% 2^>nul^|%find%') do (
  6.     set "var=%%i"
  7.     set var=!var:\%s%\=^
  8. !
  9.     for /f "delims=" %%a in ("!var!") do if not defined str set "str=%%a"
  10. )
  11. if not defined str (echo,没有%s%目录)else echo,%str%
  12. pause
复制代码

TOP

本帖最后由 terse 于 2014-10-7 19:48 编辑

回复 20# 小智BAT
  1. @echo off&setlocal enabledelayedexpansion
  2. set "s=V4用户认证"
  3. set "reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders"
  4. set "find=findstr/i \\%s%\\.*REG_SZ
  5. for /f "tokens=*" %%i in ('%reg% 2^>nul^|%find%') do (
  6.     set "var=%%i"
  7.     set var=!var:\%s%\=\%s%^
  8. !
  9.     for /f "delims=" %%a in ("!var!") do (
  10.         if /i "%%~nxa" == "%s%" set /an+=1&set "$!n!=%%~dpa"
  11.     )
  12. )
  13. if not defined n (echo,没有%s%目录)else for /l %%i in (1,1,!n!) do echo,!$%%i!
  14. pause
复制代码

TOP

回复 23# 小智BAT
你举例2个变量 如果是三个或三个以上呢 上面修正为 $1  - $n

TOP

回复 27# 小智BAT
  1. @echo off&setlocal enabledelayedexpansion
  2. set "s=V4用户认证"
  3. set "reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders"
  4. set "find=findstr/i \\%s%\\.*REG_SZ
  5. for /f "tokens=*" %%i in ('%reg% 2^>nul^|%find%') do (
  6.     set "var=%%i"
  7.     set var=!var:\%s%\=\%s%^
  8. !
  9.     for /f "delims=" %%a in ("!var!") do (
  10.         if /i "%%~nxa" == "%s%" (
  11.            if not defined a (set a=%%~dpa)else set b=%%~dpa
  12.         )
  13.     )
  14. )
  15. if not defined a (
  16.    echo,没有%s%目录
  17. )else echo %a%&if defined b echo %b%
  18. pause
复制代码
1

评分人数

TOP

返回列表