Windows的batch可不可以像Linux一樣有 wc -l (算行數)的功能呢

以下是在linux判斷netstat -an是否可以看到3000 port的連線數量,若是0(代表沒有連線),才會寫log。

if [ `netstat -an|grep 30000|wc -l` -eq 0 ]
then
echo "`date "+%Y-%m-%d %H:%M:%S"` 30000 port connection doesn't exist." >>/tmp/test.log
else
echo "Nothing to do"
fi

我在windows中,想透過 batch 達到同樣功能,上網看一下,windows batch一樣有if判斷式,但是卡在算行數的功能,也就是Linux的wc -l,不知道要怎麼達成呢?
2022-01-19 11:20 發佈
Command prompt的batch應該是沒有

Powershell的話有Measure-Object -line的指令可以用
chtois wrote:
以下是在linux判...(恕刪)

https://docs.microsoft.com/zh-tw/windows/wsl/install

windows10以後可以考慮把Linux加入來用了
chtois wrote:
但是卡在算行數的功能


windows 內建的指令

find /v "" /c < 檔名.副檔名




有輸出結果的指令(執行檔) | find /v "" /c




也可併用findstr,詳細請參考官方說明
https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/find
https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/findstr

rem for windows (not Linux)
rem 程式碼,請自建一個.bat儲存
@echo off
cls
setlocal EnableDelayedExpansion
set "CheckPort=netstat -a -n|findstr /n /c:"要找的關鍵字放這裡" |find /v /c """

for /f %%c in ('!CheckPort!') do set CountLine=%%c

if %CountLine%==0 (echo %date% %time% Houston, we have a problem...) else (echo OK)


內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?