如何在Windows批处理文件中获取返回的值

时间:2017-06-05 04:48:50

标签: windows batch-file gulp

在Windows批处理文件中,我想要返回值,即apkVerison编号。当我在命令行或批处理文件中运行gulp getVersion时,它工作正常。我想将版本号保存到批处理文件中的变量。

gulpfile.js:
  gulp.task('getVersion', function () {
      var data = require('./package.json')
      console.log('Version = ' + data.apkDependencies.apkVersion)
      return data.apkDependencies.apkVersion;
    });

abc.bat:
    set x=gulp getVersion 
    echo %x%

批处理文件不起作用。回声只是回声“gulp getVersion”

对不起我应该提到当我运行gulp这是它的输出

gulp getVersion
[22:16:44] Using gulpfile ~\CareWheelsCorp\CareWheels\gulpfile.js
[22:16:44] Starting 'getVersion'...
Version = 9.1.13
[22:16:44] Finished 'getVersion' after 1.91 ms

如你所见,版本隐藏在里面,我需要9.1.13号码

1 个答案:

答案 0 :(得分:1)

完全愉快地工作 - 就像你要求的那样,echo x的内容。

如果您想执行 x的内容,则需要

%x%

如果您想获得返回值,则需要

for /f "delims=" %%r in ('%x%') do set "return=%%r"
echo %return%

(假设可执行文件以stdout

的结果响应

鉴于澄清,

for /f "tokens=1*delims== " %%r in ('%x%') do if "%%r"=="Version" set "return=%%s"
echo %return%