| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- @ECHO OFF
- SET IP=192.168.1.132
- SET BAT=0
- IF "%~1" NEQ "" (
- SET IP=%1
- SET BAT=1
- )
- SET CURDIR=%~dp0
- SET CURDIR=%CURDIR:~0,-1%
- SET DEVDIR=/root
- SET PSCP=%CURDIR%\tools\pscp
- SET PLINK=%CURDIR%\tools\plink
- SET USR=root
- SET FBAT=%CURDIR%\tools\script.sh
- SET PWD=gowone123
- SET FILE=PDUInfo.txt
- SET CSVFILE=device_info.csv
- ::test ip
- ECHO ping %IP% ...
- PING -n 3 -w 500 %IP% > NUL
- IF %ERRORLEVEL% NEQ 0 (
- IF %BAT% EQU 0 (
- ECHO %IP% can't reached!
- )
- EXIT /B 1
- )
- ::获取设备MAC地址
- for /f "tokens=*" %%a in ('%PLINK% -batch -ssh %USR%@%IP% -pw %PWD% "cat /sys/class/net/eth0/address"') do set mac=%%a
- ::MAC地址转换为大写
- call set "mac_upper=%%mac:a=A%%"
- call set "mac_upper=%%mac_upper:b=B%%"
- call set "mac_upper=%%mac_upper:c=C%%"
- call set "mac_upper=%%mac_upper:d=D%%"
- call set "mac_upper=%%mac_upper:e=E%%"
- call set "mac_upper=%%mac_upper:f=F%%"
- ECHO MAC Address: %mac_upper%
- :: 遍历device_info.csv文件查找匹配的行
- set model=null
- set serial_number=null
- :: 检查device_info.csv文件是否存在
- if not exist "%CSVFILE%" (
- echo Error: File %CSVFILE% not found!
- pause
- exit /b 1
- )
- for /f "tokens=1,2,3,4 delims=," %%a in (%CSVFILE%) do (
- if %%d==%mac_upper% (
- set model=%%b
- set serial_number=%%c
- )
- )
- :: 输出结果
- echo PN: %model%
- echo SN: %serial_number%
- if not %model% == null (
- ECHO Successfully found device information matching the MAC address in file %CSVFILE%.
- ) else (
- ECHO No matching MAC address found in file %CSVFILE%.
- pause
- EXIT /B 2
- )
- set "temp_file=%CURDIR%\PDUInfo_temp.txt"
- :: 处理文件
- (
- for /f "usebackq tokens=1* delims=:" %%a in ("%FILE%") do (
- if %%a=="product_sn" (
- echo "product_sn": "%model%"
- ) else if %%a=="device_no" (
- echo "device_no": "%serial_number%"
- ) else (
- echo %%a: %%b
- )
- )
- ) > "%temp_file%"
- :: 替换原文件
- move /y "%temp_file%" "%FILE%" >nul
- ECHO Successfully written the product information to the configuration file %FILE%.
- ::send files
- ECHO send %FILE% to device ...
- ECHO y | %PSCP% -pw %PWD% %FILE% %USR%@%IP%:%DEVDIR%
- IF %ERRORLEVEL% NEQ 0 (
- ECHO send failed!
- TIMEOUT /T 5 > NUL
- EXIT /B 3
- )
- ECHO send finished, release files now ...
- ECHO y | %PLINK% -ssh -t -pw %PWD% %USR%@%IP% -m %FBAT%
- IF %ERRORLEVEL% NEQ 0 (
- ECHO upgrade failed!
- TIMEOUT /T 5 > NUL
- EXIT /B 4
- )
- IF %BAT% EQU 0 (
- ECHO upgrade successfully!
- ECHO quit now ...
- TIMEOUT /T 5 > NUL
- )
- EXIT /B 0
|