この例は機能しません:
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
文字列が必要です。
!? という名前のファイルではなくreturn
、変数のテキストが必要だと思います。output
output
これを取得するには、次の 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
試す
(
call :testcall
) >output.txt
output
変数が適切に定義されている限り機能します。
@echo off
set output=test.txt
call :testcall > %output%
goto :eof
:testcall
echo return
goto :eof
:eof
編集
質問の解釈を誤った可能性があると思います。OPがファイルを作成しようとしていると思いました。しかし、jebの答えには正しい解釈と良い答えがあると思います。