Board logo

标题: 请教,谁能帮忙写一个远程更改FTP口令的批处理。 [打印本页]

作者: hi2580     时间: 2008-8-25 09:32    标题: 请教,谁能帮忙写一个远程更改FTP口令的批处理。
要求:运行批处理,提示输入用户名,新密码,旧密码。更改成功

我自己尝试写了一下,写不出,参数不知道怎么传递。有点乱。

作者: hi2580     时间: 2008-8-25 11:16
高手帮帮忙呀。

作者: HAT     时间: 2008-8-25 14:02
@echo off
set /p UserName=用户名:
set /p NewPwd=新密码:
set /p OldPwd=旧密码:
set FtpFile=%temp%\TempAcc.txt
>"%FtpFile%" echo %UserName%
>>"%FtpFile%" echo %OldPwd%
>>"%FtpFile%" echo quote "site pswd %OldPwd% %NewPwd%"
start ftp -v -i -s:"%FtpFile%" IPADDRESS
echo 更改成功
pause

作者: hi2580     时间: 2008-8-25 15:21
有很大的启发,不过,似乎不能直接用,能帮忙更改一下更好。我自己也会努力试试。

作者: hi2580     时间: 2008-8-25 15:42
@echo off
set /p UserName=用户名:
set /p OldPwd=旧密码:
set /p NewPwd=新密码:
set FtpFile=%temp%\TempAcc.txt
>"%FtpFile%" echo open 11.48.145.183 22
>>"%FtpFile%" echo %UserName%
>>"%FtpFile%" echo %OldPwd%
>>"%FtpFile%" echo quote site pswd %OldPwd% %NewPwd%
>>"%FtpFile%" echo quit
ftp -is:"%FtpFile%"
echo 更改成功,按任意键退出!
pause

作者: hi2580     时间: 2008-8-25 15:43
自己已经搞定,已经能改口令。
但是,无论成功失败,都提示成功。不知道怎么获取错误值进行判断。希望高手指点。

作者: HAT     时间: 2008-8-25 15:56
修改密码以后,用新的密码重新连接ftp,并自动下载一个文件。
如果文件下载成功,就说明密码修改成功了。

作者: hi2580     时间: 2008-8-25 15:58
这个方法太土了吧。我是希望加一个判断语句,

作者: HAT     时间: 2008-8-25 16:07
你想在哪里判断?
ftp命令里面支持if吗?
如果你能找到洋气的方法,记得给大家分享哦:)

作者: hi2580     时间: 2008-8-25 17:31
ftp -is:"%FtpFile%">"%FtpLog%

findstr /r "230 Password changed okay" %FtpLog%

findstr 不知道返回什么值?

作者: HAT     时间: 2008-8-25 17:45
修改密码出错的时候,能否把FtpLog的内容贴出来看看?

作者: hi2580     时间: 2008-8-25 17:46
出错有好多原因,
我就是判断成功,成功的log里有"230 Password changed okay"

作者: qwertl     时间: 2008-8-25 17:56
set /p OldPwd=旧密码:
set /p NewPwd=新密码:
这两个要在执行批处理时以参数执行该怎样做?
如批处理为:ch.bat 旧密码为:1234 新密码为:abcd
则 执行: ch 1234 abcd

作者: HAT     时间: 2008-8-25 19:25    标题: Re 12楼
findstr /r "230 Password changed okay" %FtpLog%
if %errorlevel% equ 0 (
echo 更改成功
) else (
echo 更改失败
)

作者: HAT     时间: 2008-8-25 19:27    标题: Re 13楼

set OldPwd=%1
set NewPwd=%2

作者: hi2580     时间: 2008-8-25 19:49
@echo off
echo *************************************************
echo * *
echo * FTP服务器用户口令更改程序 *
echo * *
echo *************************************************
set /p HostIP=请输入FTP服务器IP地址:
set /p HostPort=FTP服务器端口号(一般填21):
set /p UserName=用户名(大小写均可):
set /p OldPwd=旧密码:
set /p NewPwd=新密码:
set FtpFile=%temp%\TempAcc.txt
set FtpLog=%temp%\TempFTP.log
>"%FtpFile%" echo open %HostIP% %HostPort%
>>"%FtpFile%" echo %UserName%
>>"%FtpFile%" echo %OldPwd%
>>"%FtpFile%" echo quote site pswd %OldPwd% %NewPwd%
>>"%FtpFile%" echo quit
ftp -is:"%FtpFile%">"%FtpLog%
del "%FtpFile%"
findstr /C:"230 Password changed okay" %FtpLog%>nul && goto true_line||goto fail_line
pause
exit
:true_line
echo *************************************************
echo * *
echo * 恭喜,密码更改成功!! *
echo * 按任意键关闭本窗口..... *
echo * *
echo *************************************************
pause
exit
:fail_line
echo *************************************************
echo * *
echo * 抱歉,密码更改失败!! *
echo * 请检查原用户名和口令是否正确。 *
echo * 按任意键关闭本窗口..... *
echo * *
echo *************************************************
pause
exit


Last edited by hi2580 on 2008-8-25 at 07:56 PM ]

作者: BC     时间: 2008-8-25 19:58
不错

作者: HAT     时间: 2008-8-25 19:59
感谢分享

作者: qwertl     时间: 2008-8-25 20:11
这样是否可以对上传文件成功也有个确认判断的?要是上传不成功的话可以发邮件到邮箱,邮箱收到邮件有短信通知.