2016-10-15 28 views
2

我試圖檢查某個輸出(!輸出!)是否包含特定字符串(「ENABLED」)。批量查找變量中的字符串

setlocal enabledelayedexpansion 
FOR /F %%C IN (%nodeFile%) DO (
set output=dashd-cli masternodelist status %%C 
!output! 
IF NOT "!output!"=="!output:ENABLED=!" (
    echo OFFLINE 
) 
) 
goto :done 

!輸出的輸出!是那些中的任何一個:

當節點正在運行:

{ 
    "111.111.111.111:1111" : "ENABLED" 
} 

當節點沒有運行:

{ 
} 

眼下它不迴應任何節點沒有顯示任何輸出,這意味着它找不到字符串「ENABLED」。

+0

whats in your'%nodefile%'?? ?? – loadingnow

+0

IP地址+端口,像這樣: 111.111.111.111:1111, 222.222.222.222:2222, 333.333.333.333:3333等 – luikstruik

+0

看着最後他們提出的問題,它是一個包含每個單獨的線列表看起來像這樣''「123.123.123.200:xxxx」'每個都有不同的最後八位字節。 – Compo

回答

0

你只是想做這樣的事情嗎?

@ECHO OFF 
FOR /F "USEBACKQ" %%a IN ("%nodeFile%") DO (
    dashd-cli masternodelist status %%a|Find "ENABLED"||(Echo= %%a - OFFLINE)) 
PAUSE 
+0

我這麼認爲,是的。我如何將%% a寫入文件?像這樣? 'dashd-cli masternodelist status %% a | Find「ENABLED」||(Echo = %% a - OFFLINE)||(@echo %% a >> offline.txt))' – luikstruik

+0

想想我明白了,至少它的工作原理,除非有更好的方法。 'dashd-cli masternodelist status %% a | FIND「ENABLED」||(echo OFFLINE)&&(@echo %% a >> offline.txt)' – luikstruik

相關問題