3 回答

TA貢獻1818條經驗 獲得超8個贊
如果必須捕獲所有命令輸出,則可以使用如下批處理:
@ECHO OFF
IF NOT "%1"=="" GOTO ADDV
SET VAR=
FOR /F %%I IN ('DIR *.TXT /B /O:D') DO CALL %0 %%I
SET VAR
GOTO END
:ADDV
SET VAR=%VAR%!%1
:END
所有輸出行都存儲在VAR中,以“!”分隔。
@John:這有什么實際用途嗎?我認為您應該觀看PowerShell或任何其他能夠輕松執行腳本任務的編程語言(Python,Perl,PHP,Ruby)

TA貢獻1810條經驗 獲得超4個贊
多年來,謙遜的命令積累了一些有趣的能力:
D:\> FOR /F "delims=" %i IN ('date /t') DO set today=%i
D:\> echo %today%
Sat 20/09/2008
請注意,"delims="覆蓋默認空格和制表符分隔符,以便date命令的輸出一次全部吞噬。
要捕獲多行輸出,它仍然可以基本上是單行(使用變量lf作為結果變量中的分隔符):
REM NB:in a batch file, need to use %%i not %i
setlocal EnableDelayedExpansion
SET lf=-
FOR /F "delims=" %%i IN ('dir \ /b') DO if ("!out!"=="") (set out=%%i) else (set out=!out!%lf%%%i)
ECHO %out%
要捕獲管道表達式,請使用^|:
FOR /F "delims=" %%i IN ('svn info . ^| findstr "Root:"') DO set "URL=%%i"
- 3 回答
- 0 關注
- 1115 瀏覽
添加回答
舉報