Batch file 获取注册表项的值,如果Value=something,则继续执行IF语句*
这是我正在使用的代码。我想说的是,如果计算机名=KH-TC*转到end并退出,如果计算机名=KH-ZC*运行此可执行文件。任何帮助都会很好。谢谢我一点也不懂脚本,所以我在努力完成它。以下是我到目前为止的情况:Batch file 获取注册表项的值,如果Value=something,则继续执行IF语句*,batch-file,Batch File,这是我正在使用的代码。我想说的是,如果计算机名=KH-TC*转到end并退出,如果计算机名=KH-ZC*运行此可执行文件。任何帮助都会很好。谢谢我一点也不懂脚本,所以我在努力完成它。以下是我到目前为止的情况: @echo on REG Query "HKCU\Volatile Environment" /v "ViewClient_Machine_Name" IF %ErrorLevel% EQU "KH-ZC*" GOTO ZEROCLIENT IF %ErrorLevel% EQU "KH-
@echo on
REG Query "HKCU\Volatile Environment" /v "ViewClient_Machine_Name"
IF %ErrorLevel% EQU "KH-ZC*" GOTO ZEROCLIENT
IF %ErrorLevel% EQU "KH-TC*" GOTO THINCLIENT
GOTO END
:ZEROCLIENT
@ECHO THIS IS ZERO CLIENT
C:\Windows\System32\tsdiscon.exe
GOTO END
:THINCLIENT
@ECHO THIS IS THIN CLIENT
GOTO END
:END
@ECHO THIS IS END
@exit
使用下面的代码,它检查一个选项并在该选项上分支。
errorlevel永远不是一个字符串,而是一个数字 以下是一个命令行中的答案。
&&
是一个构造,当errorlevel为0时,它将从find.exe启动以下命令
@echo on
REG Query "HKCU\Volatile Environment" /v "ViewClient_Machine_Name" |find "KH-ZC" >nul && "C:\Windows\System32\tsdiscon.exe"
使用下面的示例编写代码
@echo on
REG Query "HKCU\Volatile Environment" /v "ViewClient_Machine_Name" |find "KH-ZC" >nul
IF %ErrorLevel% EQU 0 (GOTO ZEROCLIENT) else (GOTO THINCLIENT)
:ZEROCLIENT
@ECHO THIS IS ZERO CLIENT
C:\Windows\System32\tsdiscon.exe
GOTO END
:THINCLIENT
@ECHO THIS IS THIN CLIENT
GOTO END
:END
@ECHO THIS IS END
@exit
+1但我认为KH-TC*的意思是KH-TC必须严格处于起始状态。可能是FINDSTR?@npocmaka你可能是对的,我们必须得到OP的确认。我没有注册表项来检查它-它不是在一个值中,而不是在一行的开头吗?哇,谢谢你们!这真是太棒了,现在几乎可以用了。我需要什么才能在注册表值字符串中找到ZC。例如(KH-ITZC01),如果只寻找ZC?谢谢你的帮助!!您的脚本中有什么不起作用?