Board logo

标题: [文件操作] [已解决]求助修改安装FileZilla Server的批处理 [打印本页]

作者: newgain    时间: 2019-10-23 16:50     标题: [已解决]求助修改安装FileZilla Server的批处理

  1. @echo off
  2. if exist "C:\Progra~2\FileZilla Server\FileZilla Server.xml" (
  3. goto install86
  4. ) else (
  5. goto install64
  6. )
  7. :install86
  8. del /s /q /f "C:\Progra~2\FileZilla Server\FileZilla Server.xml
  9. move "%~dp0\FileZilla Server.xml" "C:\Progra~2\FileZilla Server"
  10. NET STOP "FileZilla Server"&&NET START "FileZilla Server"
  11. goto allinstallok
  12. :install64
  13. if exist "C:\Progra~1\FileZilla Server\FileZilla Server.xml" (
  14. goto installin
  15. ) else (
  16. goto out
  17. )
  18. :installin
  19. del /s /q /f "C:\Progra~1\FileZilla Server\FileZilla Server.xml
  20. move "%~dp0\FileZilla Server.xml" "C:\Progra~1\FileZilla Server"
  21. NET STOP "FileZilla Server"&&NET START "FileZilla Server"
  22. goto allinstallok
  23. :allinstallok
  24. echo. >>ipaddress.txt
  25. echo. >>ipaddress.txt
  26. echo 程序部署完成 >>ipaddress.txt
  27. echo. >>ipaddress.txt
  28. echo 以下为本机IP信息,请拍照或者记录 >>ipaddress.txt
  29. echo. >>ipaddress.txt
  30. echo ------------------------------------------------------>>ipaddress.txt
  31. echo. >>ipaddress.txt
  32. ipconfig | findstr "IPv4 地址">>ipaddress.txt
  33. echo. >>ipaddress.txt
  34. echo ------------------------------------------------------>>ipaddress.txt
  35. start notepad "ipaddress.txt"
  36. ping /n 2 127.1>nul
  37. del /q ipaddress.txt
  38. ver|findstr "5.1" >nul && (
  39.     set "m=ipconfig^|findstr /i "ip address""
  40. )|| (
  41.     set "m=ipconfig^|findstr /i "ipv4""
  42. )
  43. for /f "tokens=14* delims=: " %%1 in ('%m%')do start "" "ftp://%%2:18003"
  44. set /p clean="是否需要清理安装文件 Y / N ?"
  45.     if /i "%clean%"=="Y" cd /d ... & rd /s /q "%~dp0"
  46.     if /i "%clean%"!="Y" exit
  47. :out
  48. echo.
  49. echo.
  50. echo                            没有找到安装文件,请确认是否已完成安装
  51. echo.
  52. pause
复制代码
问题1:有的电脑能运行,有的不能运行,直接跳到OUT 提示 没有找到安装文件,请确认是否已完成安装.
问题2:无法删除文件夹本身
作者: Batcher    时间: 2019-10-23 17:08

回复 1# newgain


:install64
if exist "C:\Progra~1\FileZilla Server\FileZilla Server.xml" (
goto installin
) else (
goto out
)

跳转到ut说明执行这段代码的时候,if判断找不到文件 "C:\Progra~1\FileZilla Server\FileZilla Server.xml"
是不是你的代码逻辑写错啦?为啥不存在这个文件就要 goto out 呢?
作者: newgain    时间: 2019-10-23 17:15

回复 2# Batcher
默认的安装文件夹呀
作者: Batcher    时间: 2019-10-23 17:20

回复 3# newgain


在出问题的机器上:
把Progra~2和Progra~1这种短名都改成完成名称再执行试试,并确认一下C:\xxx\FileZilla Server\FileZilla Server.xml 这个文件到底真的存在还是不存在
作者: newgain    时间: 2019-10-23 17:23

回复 4# Batcher

回头我再试试。这个文件应该是存在的,安装完才会运行这个批处理,就是觉得替换配置文件重启服务器太麻烦才写的这个。
删除文件夹的代码好像是有问题的,无法删除文件夹
作者: newgain    时间: 2019-10-23 19:41

回复  newgain


:install64
if exist "C:\Progra~1\FileZilla Server\FileZilla Server.xml" (
goto ...
Batcher 发表于 2019-10-23 17:08



    不存在这个文件说明 软件安装包没有安装,所以退出批处理
作者: Batcher    时间: 2019-10-23 22:08

回复 6# newgain


    那你的问题1就不是问题了吧。这个代码准确完成了你的这个说法
作者: newgain    时间: 2019-10-24 08:08

  1. @echo off
  2. if exist "C:\Program Files (x86)\FileZilla Server\FileZilla Server.xml" (
  3. goto install64
  4. ) else (
  5. goto install86
  6. )
  7. :install86
  8. if exist "C:\Program Files\FileZilla Server\FileZilla Server.xml" (
  9. goto installin
  10. ) else (
  11. goto out
  12. )
  13. :install64
  14. del /s /q /f "C:\Program Files (x86)\FileZilla Server\FileZilla Server.xml
  15. move "%~dp0\FileZilla Server.xml" "C:\Program Files (x86)\FileZilla Server"
  16. NET STOP "FileZilla Server"&&NET START "FileZilla Server"
  17. goto allinstallok
  18. :installin
  19. del /s /q /f "C:\Program Files\FileZilla Server\FileZilla Server.xml
  20. move "%~dp0\FileZilla Server.xml" "C:\Program Files\FileZilla Server"
  21. NET STOP "FileZilla Server"&&NET START "FileZilla Server"
  22. goto allinstallok
  23. :allinstallok
  24. echo. >>ipaddress.txt
  25. echo. >>ipaddress.txt
  26. echo 程序部署完成 >>ipaddress.txt
  27. echo. >>ipaddress.txt
  28. echo 以下为本机IP信息,请拍照或者记录 >>ipaddress.txt
  29. echo. >>ipaddress.txt
  30. echo ------------------------------------------------------>>ipaddress.txt
  31. echo. >>ipaddress.txt
  32. ipconfig | findstr "IPv4 地址">>ipaddress.txt
  33. echo. >>ipaddress.txt
  34. echo ------------------------------------------------------>>ipaddress.txt
  35. start notepad "ipaddress.txt"
  36. ping /n 2 127.1>nul
  37. del /q ipaddress.txt
  38. ver|findstr "5.1" >nul && (
  39.     set "m=ipconfig^|findstr /i "ip address""
  40. )|| (
  41.     set "m=ipconfig^|findstr /i "ipv4""
  42. )
  43. for /f "tokens=14* delims=: " %%1 in ('%m%')do start "" "ftp://%%2:18003"
  44. set /p clean="是否需要清理安装文件 Y / N ?"
  45.     if /i "%clean%"=="Y" cd /d ...&rd /s /q %~dp0
  46.     if /i "%clean%"!="Y" exit
  47. :out
  48. echo.
  49. echo.
  50. echo                            没有找到安装文件,请确认是否已完成安装
  51. echo.
  52. pause
复制代码
修改了一下,本机测试没问题,自动清理安装程序也没问题了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2