使用bat脚本存储exe文件中存在的函数的返回值

时间:2011-10-13 20:28:31

标签: batch-file

我正在尝试使用bat调用saur.exe中存在的函数。 它看起来像这样:

saur.exe readName

当我执行它时,它返回一个字符串“Saurabh”。

现在我想将“saurabh”存储在名为name的变量中。

所以我在做:

set name = saur.exe readName
echo .%name%

在这种情况下,它不会执行。 它在echo命令前面给出了空白。

2 个答案:

答案 0 :(得分:2)

出于某种奇怪的原因,做你想做的事需要一些尴尬的解决方法。漫长的方法是将命令的输出存储在一个文件中,然后将文件读入变量,最后删除该文件。较短(并且几乎不可读)的方式是:

for /f "delims=" %%a in ('saur.exe readName') do set name=%%a
echo %name%

: - (

答案 1 :(得分:1)

某些SET命令文档将显示您只能将字符串分配给环境变量(http://www.computerhope.com/sethlp.htm)。

在上面的示例中,您实际上已经设置了一个名为:

的环境变量

"name "

然而,你正在回应变量:

"name"

我能找到的最佳解决方案是做类似

的事情
saur.exe readName>tempFile
SET /p variableName=<tempFile
ECHO %variableName%

希望这有助于:)