这个例子不起作用:
call :testcall > %output%
goto :eof
:testcall
echo return
goto :eof
:eof
我需要那个%output%
包含的return
字符串。
这个例子不起作用:
call :testcall > %output%
goto :eof
:testcall
echo return
goto :eof
:eof
我需要那个%output%
包含的return
字符串。
尝试
(
call :testcall
) >output.txt
我假设,您想要return
变量中的文本output
,而不是名为output
!? 的文件中的文本。
有两种常见的方法可以得到这个:
For/F
和set/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
只要变量output
定义正确,它就可以工作。
@echo off
set output=test.txt
call :testcall > %output%
goto :eof
:testcall
echo return
goto :eof
:eof
编辑
我想我可能误解了这个问题。我假设 OP 正在尝试创建一个文件。但我相信杰布的答案有正确的解释,还有一个很好的答案。