我正在尝试使用bat调用saur.exe中存在的函数。 它看起来像这样:
saur.exe readName
当我执行它时,它返回一个字符串“Saurabh”。
现在我想将“saurabh”存储在名为name
的变量中。
所以我在做:
set name = saur.exe readName
echo .%name%
在这种情况下,它不会执行。 它在echo命令前面给出了空白。
答案 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%
希望这有助于:)