不删除文件.bat 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. @echo off
  2. chcp 65001 >nul
  3. setlocal enabledelayedexpansion
  4. echo 正在建立网络连接...
  5. net use \\172.16.32.160 "thyy@2018" /user:"administrator" >nul 2>&1
  6. if !errorlevel! neq 0 (
  7. echo 网络连接失败!
  8. pause
  9. exit /b 1
  10. )
  11. echo 网络连接成功!
  12. echo.
  13. echo 设置源目录和目标目录...
  14. set "source_dir=.\dist"
  15. set "target_dir=\\172.16.32.160\D$\a.snapshot\web-server\dist"
  16. echo 创建目标目录...
  17. mkdir "%target_dir%" >nul 2>&1
  18. echo.
  19. echo 扫描目录: %source_dir%
  20. dir /b "%source_dir%" | find /v ""
  21. echo.
  22. echo === 开始上传文件夹 ===
  23. for /d %%d in ("%source_dir%\*") do (
  24. set "folder_name=%%~nxd"
  25. rem 可以在这里添加要排除的文件夹
  26. set "exclude=0"
  27. if /i "!folder_name!"==".git" set "exclude=1"
  28. if /i "!folder_name!"=="node_modules" set "exclude=1"
  29. if /i "!folder_name!"=="temp" set "exclude=1"
  30. if !exclude! equ 0 (
  31. echo [文件夹] 正在上传: !folder_name!
  32. robocopy "%source_dir%\!folder_name!" "%target_dir%\!folder_name!" /E /Z /R:1 /W:1 /NP
  33. ) else (
  34. echo [文件夹] 跳过排除的文件夹: !folder_name!
  35. )
  36. )
  37. echo.
  38. echo === 开始上传文件 ===
  39. for %%f in ("%source_dir%\*.*") do (
  40. set "file_name=%%~nxf"
  41. set "file_ext=%%~xf"
  42. rem 排除系统文件和无效文件名
  43. if not "!file_name!"=="" if not "!file_name!"=="." if not "!file_name!"==".." (
  44. if exist "%source_dir%\!file_name!" (
  45. if not exist "%source_dir%\!file_name!\" (
  46. rem 可以在这里添加要排除的文件类型
  47. set "exclude_file=0"
  48. if /i "!file_ext!"==".tmp" set "exclude_file=1"
  49. if /i "!file_ext!"==".log" set "exclude_file=1"
  50. if /i "!file_ext!"==".bak" set "exclude_file=1"
  51. if !exclude_file! equ 0 (
  52. echo [文件] 正在上传: !file_name!
  53. robocopy "%source_dir%" "%target_dir%" "!file_name!" /Z /R:1 /W:1 /NP
  54. ) else (
  55. echo [文件] 跳过排除的文件: !file_name!
  56. )
  57. )
  58. )
  59. )
  60. )
  61. echo.
  62. echo === 上传完成 ===
  63. echo 统计信息:
  64. echo 源目录: %source_dir%
  65. echo 目标目录: %target_dir%
  66. echo 完成时间: %date% %time%
  67. echo.
  68. echo 断开网络连接...
  69. net use \\172.16.32.160 /delete >nul 2>&1
  70. echo.
  71. echo 所有文件已自动上传完成!