我有一个脚本可以在命令行中运行,以获取软件版本。它在命令行中完美运行。我在getversion "<full path>"
中输入了这个内容,它正是我所需要的。
现在要注意的是,我必须将getversion.bat和vbscript文件都放在我用于命令行的目录中。这可能是一个愚蠢的问题,但如果我想将其添加到批处理脚本中,其中版本设置为变量,我该怎么做?
现在我看起来像这样
@echo off
set version=getversion "<full path>"
echo %version%
pause>nul
问题似乎是批处理文件不知道在哪里找到getversion.bat或该脚本中引用的vbscript。如何判断批处理文件的位置?
答案 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%