@echo off chcp 65001 >nul setlocal enabledelayedexpansion echo 正在建立网络连接... net use \\172.16.32.160 "thyy@2018" /user:"administrator" >nul 2>&1 if !errorlevel! neq 0 ( echo 网络连接失败! pause exit /b 1 ) echo 网络连接成功! echo. echo 设置源目录和目标目录... set "source_dir=.\dist" set "target_dir=\\172.16.32.160\D$\a.snapshot\web-server\dist" echo 创建目标目录... mkdir "%target_dir%" >nul 2>&1 echo. echo 扫描目录: %source_dir% dir /b "%source_dir%" | find /v "" echo. echo === 开始上传文件夹 === for /d %%d in ("%source_dir%\*") do ( set "folder_name=%%~nxd" rem 可以在这里添加要排除的文件夹 set "exclude=0" if /i "!folder_name!"==".git" set "exclude=1" if /i "!folder_name!"=="node_modules" set "exclude=1" if /i "!folder_name!"=="temp" set "exclude=1" if !exclude! equ 0 ( echo [文件夹] 正在上传: !folder_name! robocopy "%source_dir%\!folder_name!" "%target_dir%\!folder_name!" /E /Z /R:1 /W:1 /NP ) else ( echo [文件夹] 跳过排除的文件夹: !folder_name! ) ) echo. echo === 开始上传文件 === for %%f in ("%source_dir%\*.*") do ( set "file_name=%%~nxf" set "file_ext=%%~xf" rem 排除系统文件和无效文件名 if not "!file_name!"=="" if not "!file_name!"=="." if not "!file_name!"==".." ( if exist "%source_dir%\!file_name!" ( if not exist "%source_dir%\!file_name!\" ( rem 可以在这里添加要排除的文件类型 set "exclude_file=0" if /i "!file_ext!"==".tmp" set "exclude_file=1" if /i "!file_ext!"==".log" set "exclude_file=1" if /i "!file_ext!"==".bak" set "exclude_file=1" if !exclude_file! equ 0 ( echo [文件] 正在上传: !file_name! robocopy "%source_dir%" "%target_dir%" "!file_name!" /Z /R:1 /W:1 /NP ) else ( echo [文件] 跳过排除的文件: !file_name! ) ) ) ) ) echo. echo === 上传完成 === echo 统计信息: echo 源目录: %source_dir% echo 目标目录: %target_dir% echo 完成时间: %date% %time% echo. echo 断开网络连接... net use \\172.16.32.160 /delete >nul 2>&1 echo. echo 所有文件已自动上传完成!