Filetransfer 中文文档 下载 App

Windows 内置 FTP 功能的命令行用法

ftp.exe 是什么

ftp.exe 是 Windows 自带的 FTP 命令行工具,从 Windows NT 时代就有了。它是一个交互式命令行程序,通过输入 FTP 标准命令来操作。虽然不如图形界面直观,但在以下场景有独特优势:

启动 ftp.exe

方法一:直接输入地址连接

在 PowerShell 或 CMD 里输入:

ftp 192.168.1.5

然后按提示输入用户名(匿名模式填 anonymous)和密码。

方法二:先启动 ftp.exe 再连接

ftp

进入 ftp 提示符后:

ftp> open 192.168.1.5
ftp> user anonymous
ftp> pass
ftp> 2121

(如果端口不是 21,需要在 open 命令里指定端口,如 open 192.168.1.5 2121)

常用 FTP 命令

命令作用示例
open IP [port]连接 FTP 服务器open 192.168.1.5 2121
user [username]登录用户user anonymous
pass [password]输入密码匿名模式随便输
ls 或 dir列出远程目录dir
cd 路径切换远程目录cd DCIM/Camera
lcd 路径切换本地目录lcd D:\Photos
get 文件名下载单个文件get photo.jpg
put 文件名上传单个文件put document.pdf
mget 通配符批量下载mget *.jpg
mput 通配符批量上传mput *.apk
ascii切换 ASCII 传输模式(文本文件)ascii
binary切换二进制传输模式(图片、视频、APK 必须用这个)binary
bye 或 quit断开连接并退出bye
status查看当前状态status

快速传输示例

下载手机相机的所有 jpg 到电脑 D:\Photos

ftp
open 192.168.1.5 2121
user anonymous
pass
cd DCIM/Camera
lcd D:\Photos
binary
mget *.jpg
bye

解释:

  1. 启动 ftp.exe
  2. 连接手机 FTP 服务(IP + 端口)
  3. 匿名登录
  4. 切换远程目录到相机目录
  5. 切换本地目录到 D:\Photos
  6. 重要!切换到二进制模式——图片视频 APK 必须用二进制,否则会损坏
  7. 批量下载所有 jpg 文件
  8. 退出

上传电脑上的 APK 到手机 Download 目录

ftp
open 192.168.1.5 2121
user anonymous
pass
cd Download
lcd D:\APK
binary
put myapp.apk
bye

批量脚本化

ftp.exe 可以用 -s:脚本文件 参数执行脚本,实现完全自动化:

第一步:写脚本文件 backup.txt

open 192.168.1.5 2121
user anonymous
pass
cd DCIM/Camera
lcd D:\Photos\Backup
binary
mget *.jpg
mget *.mp4
bye

第二步:运行脚本

ftp -s:backup.txt

把这个命令加到 Windows 任务计划程序里,就能定时自动备份手机照片到电脑——前提是 FTP 服务在你安排的时间处于运行状态。

注意事项

二进制模式!

这是 ftp.exe 最容易踩的坑——默认是 ASCII 模式,只适合纯文本文件。传输图片、视频、APK、PDF 等二进制文件时必须先输入 binary 命令,否则文件会损坏(看起来传输完成了但打不开)。

ftp> binary
200 Type set to I.

看到 200 Type set to I. 响应就说明切到二进制模式了(I = Image,FTP 协议里代表二进制)。

被动模式

ftp.exe 默认使用主动模式(PORT),某些网络环境下被防火墙拦截。如果连接能建立但传输文件超时:

ftp> passive
Passive mode On.

被动模式下客户端发起数据连接,更容易穿透防火墙。

不支持 SFTP

Windows 内置的 ftp.exe 只支持标准 FTP 协议,不支持 SFTP。需要 SFTP 的话用 FileZilla 或 WinSCP。

中文文件名

ftp.exe 对中文文件名的支持取决于 Windows 的区域设置。如果远程文件名是乱码,可能需要切换代码页:

chcp 65001   # 切换到 UTF-8 代码页
ftp ...      # 然后再启动 ftp

或者在 ftp 会话里输入 quote OPTS UTF8 ON 让服务器启用 UTF-8 支持。

用 PowerShell 脚本替代 ftp.exe

PowerShell 也可以写 FTP 上传下载脚本,不用依赖 ftp.exe:

$ftp = "ftp://192.168.1.5:2121/Download/myapp.apk"
$file = "D:\APK\myapp.apk"

$cred = New-Object System.Management.Automation.PSCredential("anonymous", (ConvertTo-SecureString "pass" -AsPlainText -Force))

# 上传
Invoke-WebRequest -Uri $ftp -InFile $file -Method Put -Credential $cred

这个方法更现代、更灵活,但本质上还是 FTP 协议,有同样的二进制模式注意事项。