
可以尝试从注册表取值
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path
reg query "HKEY_CURRENT_USER\Environment" /v Path
出作为多年的IT工作者,本来批处理没什么好说的。
算不上专家,但在小圈子里面可以算是个行家。
起源是一个同事问我,批处理里面如何获取另个命令的输出。
当时想都没想,两种方法:
1FOR 循环,一行一行处理(FOR /F ["options"] %variable IN ('command') DO command [command-parameters])。
2绕着弯的干,先重定向输出到文件,再读取(这很可能还得再用for 读取文件,set /p str=<atxt倒是相对少见)
个人性格比较谨慎,说完之后我就google了一遍,看到大多数的结果都是我回答的第一点,我就放心了。
然后我就想起来了还有管道这回事,比如:
>dir d:\ /s /b | find "log"
这也是实现了部分要求,多。为什么是部分,因为这种方式无法保存到环境变量中(不信你set试试),但却可以直接传给下一个步骤的命令进行处理。
@echo off
rem 检测硬盘ID/序列号是否为指定值
set @=Any question&set #=Q&set/az=0x53b7e0b4
title %@% +%#%%#% %z%
for /f "delims=" %%a in ('wmic DISKDRIVE get SerialNumber /value^|find "="') do set %%a
if not defined SerialNumber (echo;无法获取硬盘id&goto end)
set /p id=输入id:
echo;%SerialNumber%
if "%SerialNumber%" neq "%id%" (
echo;错误,即将关机
shutdown -s -t 10
) else (
start "" "C:\t\sexe"
)
:end
echo;%@% +%#%%#% %z%
pause
以上就是关于bat脚本如何获取环境变量字面值(请看问题说明再回答)全部的内容,包括:bat脚本如何获取环境变量字面值(请看问题说明再回答)、批处理获取命令输出、bat批处理,在bat里预设一个值,获取硬盘ID,如果不匹配,就关机,匹配则执行exe文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)