0

この例は機能しません:

call :testcall > %output%
goto :eof

:testcall
  echo return
goto :eof

:eof

%output%含まれているreturn文字列が必要です。

4

3 に答える 3

2

!? という名前のファイルではなくreturn、変数のテキストが必要だと思います。outputoutput

これを取得するには、次の 2 つの一般的な方法が
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
于 2012-05-10T20:04:12.553 に答える
2

試す

(
     call :testcall
) >output.txt
于 2012-05-10T14:47:32.157 に答える
1

output変数が適切に定義されている限り機能します。

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

:testcall
  echo return
goto :eof

:eof

編集

質問の解釈を誤った可能性があると思います。OPがファイルを作成しようとしていると思いました。しかし、jebの答えには正しい解釈と良い答えがあると思います。

于 2012-05-10T14:50:39.803 に答える