2014-09-19 83 views
1

有很多堆棧溢出文章與此相關,但沒有直接的答案。Windows批處理:從EXEC輸出到SET VARIABLE輸出空間的輸出

此命令將輸出一堆話

OutputVariable.exe %FILEPATH% 

輸出:

Mary had a little lamb 

在一個批處理文件,這裏是如何得到的輸出到一個變量

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

輸出:

Mary 

通常,FOR命令會在空格處中斷。幫幫我!

回答

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

; , = <space> <tab>是在分批和在for /f結果的標準分隔符是由它們自動分裂。要停用分隔符,您需要"delims="for /f選項。

+0

我來補充,他可以通過他們循環呼應的每個值: FOR/F %%我在( 'OutputVariable.exe%FILEPATH%')做回聲% %i – 2014-09-19 19:22:25

+0

@NathanRice - 不完全。在'FOR/F'中,每個標記都應該在'tokens = 1,2,..'的選項中設置,否則它將無法訪問。在普通的'FOR'中,可以迭代在每個元素上。 – npocmaka 2014-09-19 19:24:52

+0

'「delims =」'是的。謝謝! – 010110110101 2014-09-20 01:17:26

0

我建議:

@echo off 

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