中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-15 18:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教,谁能帮忙写一个远程更改FTP口令的批处理。 查看 1,880 回复 18
楼 主 请教,谁能帮忙写一个远程更改FTP口令的批处理。 发表于 2008-08-25 09:32 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
要求:运行批处理,提示输入用户名,新密码,旧密码。更改成功

我自己尝试写了一下,写不出,参数不知道怎么传递。有点乱。
2 发表于 2008-08-25 11:16 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
高手帮帮忙呀。
3 发表于 2008-08-25 14:02 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@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
4 发表于 2008-08-25 15:21 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
有很大的启发,不过,似乎不能直接用,能帮忙更改一下更好。我自己也会努力试试。
5 发表于 2008-08-25 15:42 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
@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
6 发表于 2008-08-25 15:43 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
自己已经搞定,已经能改口令。
但是,无论成功失败,都提示成功。不知道怎么获取错误值进行判断。希望高手指点。
7 发表于 2008-08-25 15:56 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
修改密码以后,用新的密码重新连接ftp,并自动下载一个文件。
如果文件下载成功,就说明密码修改成功了。
8 发表于 2008-08-25 15:58 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
这个方法太土了吧。我是希望加一个判断语句,
9 发表于 2008-08-25 16:07 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你想在哪里判断?
ftp命令里面支持if吗?
如果你能找到洋气的方法,记得给大家分享哦:)
10 发表于 2008-08-25 17:31 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
ftp -is:"%FtpFile%">"%FtpLog%

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

findstr 不知道返回什么值?
11 发表于 2008-08-25 17:45 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
修改密码出错的时候,能否把FtpLog的内容贴出来看看?
12 发表于 2008-08-25 17:46 ·  中国 浙江 丽水 电信
初级用户
积分 30
发帖 11
注册 2007-10-22 18:54
18年会员
UID 100460
性别 男
状态 离线
出错有好多原因,
我就是判断成功,成功的log里有"230 Password changed okay"
13 发表于 2008-08-25 17:56 ·  中国 广东 东莞 电信
中级用户
★★
积分 461
发帖 243
注册 2007-10-14 16:56
18年会员
UID 99730
性别 男
状态 离线
set /p OldPwd=旧密码:
set /p NewPwd=新密码:
这两个要在执行批处理时以参数执行该怎样做?
如批处理为:ch.bat 旧密码为:1234 新密码为:abcd
则 执行: ch 1234 abcd
14 Re 12楼 发表于 2008-08-25 19:25 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
findstr /r "230 Password changed okay" %FtpLog%
if %errorlevel% equ 0 (
echo 更改成功
) else (
echo 更改失败
)
15 Re 13楼 发表于 2008-08-25 19:27 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线

set OldPwd=%1
set NewPwd=%2
论坛跳转: