0

这个例子不起作用:

call :testcall > %output%
goto :eof

:testcall
  echo return
goto :eof

:eof

我需要那个%output%包含的return字符串。

4

3 回答 3

2

尝试

(
     call :testcall
) >output.txt
于 2012-05-10T14:47:32.157 回答
2

我假设,您想要return变量中的文本output,而不是名为output!? 的文件​​中的文本。

有两种常见的方法可以得到这个:
For/Fset/p

@echo off
call :testcall > outfile.tmp
< outfile.tmp set /p myVariable=
set myVar
goto :eof

:testcall
  echo return
goto :eof

set/p 也可以读取多行,当您将其括在括号中时

@echo off
call :testcall2 > outfile.tmp
< outfile.tmp (
   set /p myVariable1=
   set /p myVariable2=
   set /p myVariable3=
)
set myVar
goto :eof

:testcall
  echo return line1
  echo content2
  echo content3
goto :eof

您还可以将For/F数据读入变量,并且您不需要任何临时文件。

@echo off
for /F "delims=" %%A in ('echo return') DO set myVariable=%%A
set myVar
于 2012-05-10T20:04:12.553 回答
1

只要变量output定义正确,它就可以工作。

@echo off
set output=test.txt
call :testcall > %output%
goto :eof

:testcall
  echo return
goto :eof

:eof

编辑

我想我可能误解了这个问题。我假设 OP 正在尝试创建一个文件。但我相信杰布的答案有正确的解释,还有一个很好的答案。

于 2012-05-10T14:50:39.803 回答