Windows批处理:将输出从exeinput到SET VARIABLE,其中输出包含空格

有很多堆栈溢出文章与此相关,但没有直接的答案。

这个命令会输出一堆字

OutputVariable.exe %FILEPATH% 

输出:

 Mary had a little lamb 

batch file中,以下是如何将输出转换为variables

 for /f %%i in ('OutputVariable.exe %FILEPATH%') do SET SENTENCE=%%i ECHO %SENTENCE% 

输出:

 Mary 

通常, FOR命令在空格处中断。 帮帮我!

 for /f "delims=" %%i in ('OutputVariable.exe %FILEPATH%') do SET "SENTENCE=%%i" ECHO %SENTENCE% 

; , = <space> <tab> ; , = <space> <tab>是批处理中的标准分隔符, for /f结果会自动被分隔符分隔。 要取消激活分隔符,您需要在for /f选项中for /f "delims="

我建议:

 @echo off for /f "tokens=*" %%i in ('OutputVariable.exe %FILEPATH%') do SET SENTENCE=%%i ECHO %SENTENCE%