如何告诉批处理脚本另一个脚本在哪里?

时间:2014-12-22 15:49:36

标签: batch-file vbscript batch-processing

我有一个脚本可以在命令行中运行,以获取软件版本。它在命令行中完美运行。我在getversion "<full path>"中输入了这个内容,它正是我所需要的。

现在要注意的是,我必须将getversion.bat和vbscript文件都放在我用于命令行的目录中。这可能是一个愚蠢的问题,但如果我想将其添加到批处理脚本中,其中版本设置为变量,我该怎么做?

现在我看起来像这样

@echo off
set version=getversion "<full path>"
echo %version%
pause>nul

问题似乎是批处理文件不知道在哪里找到getversion.bat或该脚本中引用的vbscript。如何判断批处理文件的位置?

1 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是将函数的输出定向到文件,然后使用SET /P命令将此输出读回到局部变量中。这应该这样做:

SET TempFile="%Temp%\%RANDOM%.txt"

REM Direct output to a temp file.
CALL getversion "<full path>">%TempFile%

REM Read the output written to the temp file into a local variable.
SET /P Version=<%TempFile%

ECHO %Version%

REM Cleanup.
IF EXIST %TempFile% DEL %TempFile%

或者(这种方式更“干净”),您可以使用FOR命令来运行您的函数并将输出存储到局部变量中:

FOR /F "usebackq tokens=* delims=" %%A IN (`CALL getversion "<full path>"`) DO SET Version=%%A
ECHO %Version%