找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 73301|回复: 15

[网络连接] [已解决]BAT-无法登陆FTP

[复制链接]
发表于 2014-1-20 08:58:48 | 显示全部楼层 |阅读模式
本帖最后由 chuyizhou 于 2014-1-21 13:01 编辑

大家好,最近新学习批处理,解决了很多问题。可是登陆ftp的问题一直没有找到答案,查了很多资料和帖子,发现大部分都是用下面这段代码登陆的(注:192.168.1.101只是个例子):
  1. @echo off
  2. (
  3.     echo OPEN 192.168.1.101
  4.     echo user
  5.     echo 123456
  6.     echo CD \
  7.     echo PUT "%~1"
  8.     echo BYE
  9. )>1.FTP
  10. FTP -S:1.FTP
复制代码
我在这里有几个问题:
1. open是专门用来进入ftp的命令吗?我在cmd里面输入open 192.168.1.101根本不行,说open不是internal or external的命令,只能用ftp 192.168.1.101。但用了ftp代替open写入上面的代码也行不通。
2. 如果用ftp登陆的话我又不知道怎么指定port,我想ftp /?查用法cmd却说“Unknown host /?“。。。请问怎么去写才好?

我的目的其实很简单,就只要test这个ftp能不能进就行了,或者进去之后在默认的初目录下面dir看看有没有一个test.txt的文件。

顺便问一下,类似 ftp.abcd.com的是不是和192.168.1.101这样的是同一种方式进入的阿?

希望有大神可以帮我解惑!谢谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2014-1-20 09:37:45 | 显示全部楼层
open是专门用来进入ftp的命令吗?

open是FTP内部命令,不能直接在CMD里面执行,试试这样:
开始
运行
cmd
ftp
open 192.168.1.101

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2014-1-20 10:24:16 | 显示全部楼层
回复 2# DAIC


    行得通!请问在那里可以指定端口啊?
还有我把代码第6、7行改成echo dir *.txt 之后运行发现黑框闪了一下就消失了,怎么回事啊?
发表于 2014-1-20 10:40:45 | 显示全部楼层
回复 3# chuyizhou


把端口放在IP后面
  1. open 192.168.1.101 12345
复制代码
 楼主| 发表于 2014-1-20 10:58:24 | 显示全部楼层
回复 4# DAIC
  1. @echo off

  2. (

  3.     echo OPEN 192.168.1.101 21

  4.     echo user

  5.     echo 12345

  6.     echo cd /pub

  7.     echo pwd

  8.     echo BYE

  9. )>1.FTP

  10. FTP -S:1.FTP
复制代码
请问我这个运行之后就只会黑框闪烁一下就不见,是什么情况阿?直接在cmd里面一行行敲是成功的呢……
发表于 2014-1-20 11:07:49 | 显示全部楼层
回复 5# chuyizhou


你加一个put或者get文件的操作吧
 楼主| 发表于 2014-1-20 12:19:08 | 显示全部楼层
回复 6# DAIC


    我试了一下,用dir也有output了 可是奇怪的是我运行第二遍的时候竟然只有黑框,没有任何output了。。。我加了pause但也没有press any key to continue...出现。。。
发表于 2014-1-20 12:30:38 | 显示全部楼层
回复 7# chuyizhou


不要把批处理命名为ftp.bat
试试test.bat
 楼主| 发表于 2014-1-20 13:12:48 | 显示全部楼层
回复 8# DAIC


    不可思议!之前确实是test.bat运行的,成功了之后我rename为ftp.bat的。太感谢了。。。这样我已经可以成功测试公司的4个ftp server了。

容我试试看能不能以同样的方式测试有ssh认证的几个sftp server。
发表于 2014-1-20 13:30:26 | 显示全部楼层
回复 9# chuyizhou


    sftp不支持这种方法输入用户名和密码
 楼主| 发表于 2014-1-20 14:24:03 | 显示全部楼层
回复 10# DAIC


    是的,并不支持。。。出现了下面的提示:
ftp> open 192.168.1.101 22
Connected to 192.168.1.101.
SSH-2.0-OpenSSH_5.2


请问有方法用批处理登陆吗?
发表于 2014-1-20 14:52:26 | 显示全部楼层
回复 11# chuyizhou


    用VBS模拟键盘输入用户名和密码
 楼主| 发表于 2014-1-21 09:05:20 | 显示全部楼层
回复 12# DAIC


    花了点时间查这个东西,新接触,完全没有意识……这个模拟键盘就是一串事先设置好将要输入的按键的代码是把?我应该把这段代码放在哪个地方去辅助批处理文件进入sftp服务器呢?

比如我要输入密码12345,那我就要

Set objShell = CreateObject("Wscript.Shell")
strCommandLine = "test.bat"        '
objShell.Run(strCommandLine)
set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 3000        '延时3秒
WshShell.SendKeys "1"        '模拟按下 S 键开始安装
WScript.Sleep 300        '延时0.3秒
WshShell.SendKeys "2"
WScript.Sleep 300
WshShell.SendKeys "3"        
WScript.Sleep 300      
WshShell.SendKeys "4"        
WScript.Sleep 300        
WshShell.SendKeys "5"        
WScript.Sleep 300        
WshShell.SendKeys "6"      
WScript.Sleep 300  
WshShell.SendKeys "Enter"
........

请问这个vbs虚拟键盘是怎么用的阿?
 楼主| 发表于 2014-1-21 09:23:27 | 显示全部楼层
回复 12# DAIC


    成功了!

我在test.bat里面写了set /p a=然后再用双击.vbs调用这个bat文件同时sendKey 123456abcdefg,真的出来了!

让我再研究研究 能不能放到登陆sftp的服务器。

我这儿其实有个疑问,我再cmd.exe里面手动登陆我们公司的sftp server的时候会提示下面这个东西,然后就没有然后了,真的可以用虚拟键盘登陆吗?
G:\>ftp
ftp> open sftp.abcd.com 99
Connected to sftp.abcd.com.
SSH-2.0-OpenSSH_5.2
发表于 2014-1-21 09:48:27 | 显示全部楼层
回复 14# chuyizhou


    试试看吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:32 , Processed in 0.034726 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表