怎么用bat得到一个命令执行后的返回值赋值给一个变量
比如执行wmicENVIRONMENTWHERE"Name='path'andUserName='<System>'"GETVariableValue会返回环境变量pat...
比如执行wmic ENVIRONMENT WHERE "Name='path'and UserName='<System>'" GET VariableValue会返回环境变量path的值,如何把返回值赋值给一个变量.直接set a=是不行的。
展开
展开全部
返回值赋值确实麻烦,因为有很多特殊字符。
不过,你这个例子,倒是有解。
请试试命令
echo %path%
或者
set "a=%path%"
echo %a%
pause
更多追问追答
追问
我得吧这个path 变量的值赋值给 一个变量,我要用这个变量,进行其他判断什么的。
或者完整点给你说吧,我是想判断系统环境变量里面一个名字叫做“xxx”的是否存在,如果存在,我要看他的值跟一个字符串是否相等,相等就不改变他的值,不想等我就改变,如果不存在,我就新增这个名为xxx的系统变量。是这样的,但不一定是path这个特殊的,可能是其他用户添加的系统变量,比如JAVA_HOME 或者其他的。
追答
用BAT的SET命令截取和判断字符是非常蛋疼的,劝你还是想想别的招吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是将返回值写入到文件,利用for循环读出来再赋值给变量a,迂回了下
@echo off
wmic diskdrive list brief |findstr Virtual|find /v /c "">%temp%\Vitual.txt
for /f %%i in (%temp%\Vitual.txt) do set a=%%i
echo VM Disk Num is:%a%
if %a% equ 0 (echo "Physical Machine") else (echo "Virtual Machine")
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@ECHO OFF
FOR /f "skip=1 tokens=* delims=" %%a in ('wmic ENVIRONMENT WHERE "Name='path'and UserName='<System>'" GET VariableValue') do (
SET a=%%i)
PAUSE
追问
追答
@ECHO OFF
FOR /f "skip=1 tokens=* delims=" %%i in ('wmic ENVIRONMENT WHERE "Name='path'and UserName='<System>'" GET VariableValue') do (
SET a=%%i
GOTO a
)
:a
ECHO %a%
PAUSE
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询