标题: [文件操作] [已解决]求助修改安装FileZilla Server的批处理 [打印本页]
作者: newgain 时间: 2019-10-23 16:50 标题: [已解决]求助修改安装FileZilla Server的批处理
- @echo off
- if exist "C:\Progra~2\FileZilla Server\FileZilla Server.xml" (
- goto install86
- ) else (
- goto install64
- )
- :install86
- del /s /q /f "C:\Progra~2\FileZilla Server\FileZilla Server.xml
- move "%~dp0\FileZilla Server.xml" "C:\Progra~2\FileZilla Server"
- NET STOP "FileZilla Server"&&NET START "FileZilla Server"
- goto allinstallok
- :install64
- if exist "C:\Progra~1\FileZilla Server\FileZilla Server.xml" (
- goto installin
- ) else (
- goto out
- )
- :installin
- del /s /q /f "C:\Progra~1\FileZilla Server\FileZilla Server.xml
- move "%~dp0\FileZilla Server.xml" "C:\Progra~1\FileZilla Server"
- NET STOP "FileZilla Server"&&NET START "FileZilla Server"
- goto allinstallok
- :allinstallok
- echo. >>ipaddress.txt
- echo. >>ipaddress.txt
- echo 程序部署完成 >>ipaddress.txt
- echo. >>ipaddress.txt
- echo 以下为本机IP信息,请拍照或者记录 >>ipaddress.txt
- echo. >>ipaddress.txt
- echo ------------------------------------------------------>>ipaddress.txt
- echo. >>ipaddress.txt
- ipconfig | findstr "IPv4 地址">>ipaddress.txt
- echo. >>ipaddress.txt
- echo ------------------------------------------------------>>ipaddress.txt
- start notepad "ipaddress.txt"
- ping /n 2 127.1>nul
- del /q ipaddress.txt
- ver|findstr "5.1" >nul && (
- set "m=ipconfig^|findstr /i "ip address""
- )|| (
- set "m=ipconfig^|findstr /i "ipv4""
- )
- for /f "tokens=14* delims=: " %%1 in ('%m%')do start "" "ftp://%%2:18003"
- set /p clean="是否需要清理安装文件 Y / N ?"
- if /i "%clean%"=="Y" cd /d ... & rd /s /q "%~dp0"
- if /i "%clean%"!="Y" exit
- :out
- echo.
- echo.
- echo 没有找到安装文件,请确认是否已完成安装
- echo.
- 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
- @echo off
- if exist "C:\Program Files (x86)\FileZilla Server\FileZilla Server.xml" (
- goto install64
- ) else (
- goto install86
- )
- :install86
- if exist "C:\Program Files\FileZilla Server\FileZilla Server.xml" (
- goto installin
- ) else (
- goto out
- )
- :install64
- del /s /q /f "C:\Program Files (x86)\FileZilla Server\FileZilla Server.xml
- move "%~dp0\FileZilla Server.xml" "C:\Program Files (x86)\FileZilla Server"
- NET STOP "FileZilla Server"&&NET START "FileZilla Server"
- goto allinstallok
- :installin
- del /s /q /f "C:\Program Files\FileZilla Server\FileZilla Server.xml
- move "%~dp0\FileZilla Server.xml" "C:\Program Files\FileZilla Server"
- NET STOP "FileZilla Server"&&NET START "FileZilla Server"
- goto allinstallok
- :allinstallok
- echo. >>ipaddress.txt
- echo. >>ipaddress.txt
- echo 程序部署完成 >>ipaddress.txt
- echo. >>ipaddress.txt
- echo 以下为本机IP信息,请拍照或者记录 >>ipaddress.txt
- echo. >>ipaddress.txt
- echo ------------------------------------------------------>>ipaddress.txt
- echo. >>ipaddress.txt
- ipconfig | findstr "IPv4 地址">>ipaddress.txt
- echo. >>ipaddress.txt
- echo ------------------------------------------------------>>ipaddress.txt
- start notepad "ipaddress.txt"
- ping /n 2 127.1>nul
- del /q ipaddress.txt
- ver|findstr "5.1" >nul && (
- set "m=ipconfig^|findstr /i "ip address""
- )|| (
- set "m=ipconfig^|findstr /i "ipv4""
- )
- for /f "tokens=14* delims=: " %%1 in ('%m%')do start "" "ftp://%%2:18003"
- set /p clean="是否需要清理安装文件 Y / N ?"
- if /i "%clean%"=="Y" cd /d ...&rd /s /q %~dp0
- if /i "%clean%"!="Y" exit
- :out
- echo.
- echo.
- echo 没有找到安装文件,请确认是否已完成安装
- echo.
- pause
复制代码
修改了一下,本机测试没问题,自动清理安装程序也没问题了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |