可以从调用cmd文件中的标签中获取一些数据吗?

时间:2012-05-10 14:12:52

标签: command-line batch-file windows-xp cmd

此示例无效:

call :testcall > %output%
goto :eof

:testcall
  echo return
goto :eof

:eof

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

3 个答案:

答案 0 :(得分:2)

(
     call :testcall
) >output.txt

答案 1 :(得分: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

答案 2 :(得分:1)

只要变量output被正确定义,它就会起作用。

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

:testcall
  echo return
goto :eof

:eof

修改

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