各位前輩好:
小弟寫了一個簡單的bat取得電腦的IP與MAC
=================
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1 delims=[]" %%i in ('nbtstat -S^|find /n "乙太網路:"') do (
nbtstat -S | more +%%i >$
set /p Str=<$
del $
for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set LIP=%%i
)
for /f "tokens=16" %%i in ('ipconfig /all ^| find /i "IPv4 地址"') do set ip=%%i
echo 本機使用者名稱為: %COMPUTERNAME%
echo 本機有線IP為:%LIP%
for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr
"..-..-..-..-..-.."') do (
echo %%i %%j
)
執行結果:
不過有3個小問題
1.請問要如何將上述的資訊寫入TXT檔案,並將檔名命名為抓到的IP呢(隨著在不同電腦運作Bat會產生不同檔名)?
2.我只想抓到實體網路的MAC位址,但是都會抓到VM的,是否有辦法篩選?
3.這個匯出的檔案(TXT)會跟其他TXT做合併
以所有資料都放在C:\目錄下來說,下列指令能夠C:\下的所有.txt檔案合併
cd C:
copy *.txt conbine.txt
請問有辦法讓上述IPMAC的TXT檔案合併後,資訊能夠顯示在合併檔(conbine.txt)的最上層嗎
感謝各位大大解惑
關於第三個問題,我可能描述的不夠清楚
透過下列的bat檔案,能夠將windows的系統日誌(應用程式、安全性與系統)匯出成app.txt、sec.txt及sys.txt檔案,並且將三個檔案組合成一個檔案(winlog.txt)
=======================================================================
@echo off & setlocal enabledelayedexpansion
wevtutil qe security /f:text /rd:true /q:"Event[System[EventID=4624]]" > C:\sec.txt
wevtutil qe application /f:text /rd:true /q:"Event[System[(EventID=4625 or EventID=20001 or EventID=20003 or EventID=4672 or EventID=4624)]]" > C:\app.txt
wevtutil qe system /f:text /rd:true /q:"Event[System[(EventID=4625 or EventID=20001 or EventID=20003 or EventID=4672 or EventID=4624)]]" > C:\sys.txt
cd C:
copy *.txt winlog.txt
pause
========================================================================
而我的問題三就是希望將該台電腦的電腦名稱、IP及MAC插入到winlog.txt內容的最上層,並將檔名改成 "電腦IP".txt
希望各位大大能夠幫忙解惑,感恩
@echo off & setlocal enabledelayedexpansion
REM 每次執行前,先刪除舊的檔案
del conbine.txt
for /f "tokens=1 delims=[]" %%i in ('nbtstat -S^|find /n "乙太網路:"') do (
nbtstat -S | more +%%i >$
set /p Str=<$
del $
for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set LIP=%%i
)
for /f "tokens=16" %%i in ('ipconfig /all ^| find /i "IPv4 地址"') do set ip=%%i
REM 開始寫入TXT檔
echo 本機使用者名稱為: %COMPUTERNAME%>conbine.txt
REM 附加到TXT檔
echo 本機有線IP為:%LIP%>>conbine.txt
for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr
"..-..-..-..-..-.."') do (
REM 附加到TXT檔
echo %%i %%j>>conbine.txt
)
REM 去除含有VMware的列,再次寫入TXT檔
type conbine.txt | (findstr /v "VMware") >conbine.txt
REM 把conbine內容放到最上面,並取名為IP.txt
copy conbine.txt+winlog.txt %LIP%.txt