此示例无效:
call :testcall > %output%
goto :eof
:testcall
echo return
goto :eof
:eof
我需要%output%
包含return
字符串。
答案 0 :(得分:2)
试
(
call :testcall
) >output.txt
答案 1 :(得分:2)
我假设您希望文件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
答案 2 :(得分:1)
只要变量output
被正确定义,它就会起作用。
@echo off
set output=test.txt
call :testcall > %output%
goto :eof
:testcall
echo return
goto :eof
:eof
修改强> 的
我想我可能错误地解释了这个问题。我假设OP正在尝试创建一个文件。但我相信杰布的答案有正确的解释,并有一个很好的答案。