批处理获取返回值(将执行结果赋值变量)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理获取返回值(将执行结果赋值变量)相关的知识,希望对你有一定的参考价值。

set p=1+1
echo %p%
1+1表示执行的命令,将执行结果返回给变量

我尝试过exec、system等都不行,求助用什么命令,只要能让上面返回出的结果是2就是成功的
-----------------------------------------------------------------------------------------
我要执行的命令是wmic LogicalDisk where "DeviceID='F:'" get Size /value
@echo off
for /f "delims=" %%a in ('wmic LogicalDisk where "DeviceID='F:'" get Size

/value') do (
set "a=%%a"
call echo %%a%%
)
rem 需要将变量取出来做判断用的
pause
===================================
可以参照上面代码,我要讲取出来的变量做判断,求助

set 有个/a参数,可以直接进行算式计算的。
set /a p=1+1
得到的就是2追问

set p=wmic LogicalDisk where "DeviceID='F:'" get Size /value
echo %p%
执行这个命令呢,我要获取这个参数进行判断

追答

这句把for改成下面这样:
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DeviceID='F:'" get Size /value') do @set f_size=%%a
这样f_size里直接就是您要的size值了。

参考技术A set /a p=1+1
echo %p%

追问

set p=wmic LogicalDisk where "DeviceID='F:'" get Size /value
echo %p%
执行这个命令呢,我要获取这个参数进行判断

批处理如何获取命令的执行结果?

参考技术A

编辑批处理文件
在每一条命令后面加 >>chk.log 即可。

当使用if %errorlevel%==值 cmmand 句式时,它含义是:如果返回的错误码值等于值 的时候,将执行cmmand操作。

一般上一条命令的执行结果返回的值只有两个,"成功"用0 表示 "失败"用 1 表示。

可以用for命令将命令结果循环输出或保存为变量或直接对命令结果在循环内进行处理

一般格式如:

for /f "delims=" %%i in ('命令') do echo get %%i

示例仅显示,其中delims表示对一行中的字符以什么分段,(示例中表示不要分段)以变量%%i代表第一段(隐含有多段时依次%% j即第2段...),循环作do后的命令。

以上是关于批处理获取返回值(将执行结果赋值变量)的主要内容,如果未能解决你的问题,请参考以下文章

批处理如何获取命令的执行结果?

如何用批处理语句获取reg命令的返回值?

批处理 命令执行结果赋值与比较

微信小程序异步处理

SQL SERVER 存储过程中SELECT 返回值如何赋值给变量

如何使用线程去执行一个 有返回值的方法,并获取返回值?