2012-09-18 12 views
1

我有一個日誌文件,其中包含堆棧跟蹤,分爲多行。我需要將此文件讀入批處理文件並刪除所有換行符。如何將多行日誌文件連接成批處理文件中的單個變量?

作爲第一步,我嘗試這樣做:

if exist "%log_dir%\Log.log" (
    for /F "tokens=*" %%a in ("%log_dir%\Log.log") do @echo %%a 
) 

我的期望是,這將回聲出日誌文件的每一行。然後,我打算將這些行連接在一起,並將該值設置爲一個變量。

但是,這段代碼並沒有達到我所期望的。我已經嘗試更改分隔符和令牌的選項值,但唯一可以得到的輸出是日誌文件的絕對路徑,而不是此文件內容的任何內容。

如何將變量設置爲等於文本中文本的行並刪除了換行符?

回答

1

如果您想在FOR/F循環中使用引號作爲文件名,則還需要添加usebackq選項,否則您將得到一個字符串而不是文件的內容。

for /F "usebackq delims=" %%a in ("%log_dir%\Log.log") do @echo %%a 
0

或刪除引號

if exist "%log_dir%\Log.log" (
    for /F "tokens=*" %%a in (%log_dir%\Log.log) do @echo %%a 
) 
相關問題