2017-05-17 163 views
0

我想使用批處理腳本讀取文本文件, 我有一個包含一些數據的日誌文件,我想從該文本文件中讀取BUILD編號並顯示。如何使用批處理腳本讀取文本文件

例:構建:2016.17.05_0872

有沒有辦法讀這個樣子?

@echo off 
findstr /m "Build" C:\Users\admin.DESKTOP-CUDDLMA\Desktop\a.txt 
if %errorlevel%==0 (
echo Build found 
) 

@pause 

這是我迄今爲止所做的,它只是在文件中搜索該單詞。

+0

你沒有描述你的環境。請閱讀[mcve]是什麼。 [SO]不是腳本編寫服務,因此請顯示您已擁有的代碼以及您卡住的位置。 – LotPings

+0

請您檢查與編輯代碼 – Resu

+1

嘗試沒有'/ M'問題。請參閱'for /?'什麼'/ m'。 – Stephan

回答

-2

你可以簡單地做到這一點用grep

grep "BUILD" filename.txt 
+1

的Windows的讀取整條生產線本身不附帶的grep。這個答案是無用的。 – SomethingDark

+0

遺憾地說,但我是新來這個技術u能請寫完整的代碼? – Resu

+1

@Resu:那是完整的代碼。但是Unix代碼。翻譯成Windows世界:'find/i'Build:「filename.txt' – Stephan

0

在Windows( 「批」,聽起來像Windows),你可以使用:

find /I "build" *.log 
+0

抱歉說,但我對這項技術很陌生,你可以寫完整的代碼嗎? – Resu

+0

在Windows中,啓動命令提示符 - 贏-R,cmd,回車。然後鍵入日誌文件所在文件夾中給出的命令。或用完整路徑指定文件名。 – user1016274

0

下面是根據從我最好的猜測選項您所提供的信息有限:

我猜你的FileName.txt看起來有點像這樣:

This is the first line 
Name:MyProject Build:2016.17.05_0872 Author:Jacob 
There are other words on this line 

...你想作爲輸出的:

2016.17.05_0872 
@Echo Off 
SetLocal EnableExtensions DisableDelayedExpansion 

Set "srcFile=FileName.txt" 
Set "srcTerm=Build:" 

For /F "Delims=" %%A In ('FindStr/LIC:"%srcTerm%" "%srcFile%" 2^>Nul') Do (
    Set "_=%%A" 
    SetLocal EnableDelayedExpansion 
    For /F %%B In ("!_:*%srcTerm%=!") Do Echo=%%B 
    EndLocal) 

Timeout -1 
EndLocal 
GoTo :EOF 

只要改變第4行的文件名來匹配您正在搜索的實際文本文件的名稱。

0

你的問題是不明確的,所以我會盡力完成它。

如果你有一個文本文件,像這樣的:

First line 
Build:2016.17.05_0872 
Other line 

...你想作爲輸出這一行:

2016.17.05_0872 

...那麼這個批處理文件解決您的問題:

@echo off 
for /F "tokens=2 delims=:" %%a in ('findstr "Build" textFile.txt') do echo %%a 
+0

它不起作用,只給出生成字作爲輸出 – Resu

+0

你測試了它_with我在above_上發佈的3行文件嗎?請注意,您沒有提供任何示例輸入文件... **':('** – Aacini

相關問題