bat脚本如何获取环境变量字面值(请看问题说明再回答)

bat脚本如何获取环境变量字面值(请看问题说明再回答),第1张

可以尝试从注册表取值

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文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9651591.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存