@echo off
setlocal EnableDelayedExpansion
cls
set S=%~f0
set M=https://linuxcommand.xo.je/Linux.bat.md5
set T=%TEMP%\L.tmp

certutil -hashfile "%S%" MD5 | find /i /v "md5" > "%T%"
for /f "tokens=1" %%i in (%T%) do set A=%%i

del "%T%" 2>nul
bitsadmin /transfer md5 /download /priority normal %M% "%T%" >nul

for /f "tokens=1" %%i in (%T%) do set B=%%i

if /i not "%A%"=="%B%" (
    choice /c YN /m "检测到更新，是否更新"
    if errorlevel 2 goto R
    bitsadmin /transfer upd /download /priority normal https://linuxcommand.xo.je/Linux.bat "%S%" >nul
    del "%T%"
    "%S%"
    exit
)

:R
del "%T%" 2>nul

set /a SUC=0
set /a FAIL=0
set /a CNT=0

for %%C in (
    "ls"
    "pwd"
    "cd ."
    "mkdir TestDir"
    "rm -rf TestDir"
    "cp cmd_result.log cmd_result.bak"
    "mv cmd_result.bak cmd_result.tmp"
    "find . -name *.log"
    "cat cmd_result.log"
    "less cmd_result.log"
    "head cmd_result.log"
    "tail cmd_result.log"
    "grep echo cmd_result.log"
    "ps"
    "top -b -n 1"
    "htop"
    "df -h"
    "free -m"
    "uname -a"
    "shutdown"
    "reboot"
    "ifconfig"
    "ip addr show"
    "ping www.baidu.com"
    "scp"
    "ssh"
    "netstat -an"
    "ss -l"
    "tar -czf test.tar.gz cmd_result.log"
    "zip test.zip cmd_result.log"
    "unzip test.zip"
    "chmod 644 cmd_result.log"
    "chown"
    "useradd testuser123"
    "userdel testuser123"
    "passwd"
    "whoami"
    "who"
    "w"
    "uptime"
    "hostname"
    "cal"
    "history"
    "which ls"
    "whereis ls"
    "locate passwd"
    "updatedb"
    "du -sh"
    "lsblk"
    "mount"
    "umount"
    "fdisk -l"
    "blkid"
    "journalctl"
    "systemctl status"
    "service --status-all"
    "crontab -l"
    "atq"
    "kill -l"
    "pkill bash"
    "nice"
    "renice"
    "watch -n 1 date"
    "xargs"
    "awk '{print $1}' cmd_result.log"
    "sed 's/success/ok/' cmd_result.log"
    "sort cmd_result.log"
    "uniq cmd_result.log"
    "cut -d' ' -f1 cmd_result.log"
    "tr 'a-z' 'A-Z'"
    "wc -l cmd_result.log"
    "basename /usr/bin/ls"
    "dirname /usr/bin/ls"
    "realpath cmd_result.log"
    "readlink -f cmd_result.log"
    "ln -s cmd_result.log link_test"
    "curl http://www.baidu.com"
    "wget http://www.baidu.com"
    "dig www.baidu.com"
    "nslookup www.baidu.com"
    "traceroute www.baidu.com"
    "iptables -L"
    "ufw status"
    "firewall-cmd --state"
) do (
    set /a CNT+=1
    %%C >nul 2>&1
    if !errorlevel!==0 (
        echo %%C  →  成功
        echo %%C  →  成功>> result.txt
        set /a SUC+=1
    ) else (
        echo %%C  →  失败
        echo %%C  →  失败>> result.txt
        set /a FAIL+=1
    )
)

echo.>> result.txt
echo 总数：%CNT%>> result.txt
echo 成功：%SUC%>> result.txt
echo 失败：%FAIL%>> result.txt

echo.
echo 总数：%CNT%
echo 成功：%SUC%
echo 失败：%FAIL%

del test.tar.gz 2>nul
pause>nul