BaiduPCS-Go是用go语言编写的仿 Linux shell 文件处理命令的百度网盘命令行客户端,支持多平台使用包括: Windows, macOS, linux, 移动设备等,同时,支持百度帐号多用户登录; 通配符匹配网盘路径和 Tab 自动补齐命令和路径,多个文件或目录下载,断点续传和单文件并行下载,支持上传大文件(>2GB)的本地文件上传, 多个文件或目录上传,离线下载,http/https/ftp/电驴/磁力链协议等。下面将具体介绍BaiduPCS-Go在Windows操作系统环境下(linux命令使用方法类似)如何使用cmd命令行管理百度网盘文件。
一、BaiduPCS-Go下载及网盘账号登录
1.BaiduPCS-Go下载
BaiduPCS-Go提供了多种操作系统下载的使用文件,包括Windows 64或32位的可执行下载文件,具体下载地址见传送门:(BaiduPCS-Go下载),里面包含了Windows、linux、ox、Android、ios等多种版本,根据个人的系统情况按需下载即可。本机是Windows 64位的操作系统,下载BaiduPCS-Go-v3.5.4-windows-x64.zip即可。下载后将压缩文件直接解压到c盘即可,然后双击运行里面的BaiduPCS-Go.exe文件。运行后会出现如下提示符,可根据提示符输入相应的命令测试。
提示: 方向键上下可切换历史命令.
提示: Ctrl + A / E 跳转命令 首 / 尾.
提示: 输入 help 获取帮助.
BaiduPCS-Go >
2.百度网盘账号登录
运行BaiduPCS-Go后在命令行中输入login然后回车,接着输入自己的账户名以及密码等就可以登录百度网盘账户了。在这里特别提示,输入自己的密码时不会显示,输完直接回车即可,若输入密码不对会提示重新输入登录的。
二、BaiduPCS-Go的cmd命令功能及介绍
登录百度网盘账户后可以在命令行中输入help回车查看BaiduPCS-Go提供的具体功能:
COMMANDS:
tool 工具箱
help, h Shows a list of commands or help for one command
其他:
bg 管理后台任务
clear, cls 清空控制台
env 显示程序环境变量
run 执行系统命令
sumfile, sf 获取本地文件的秒传信息
update 检测程序更新
web 启用 web 客户端 (测试中)
百度帐号:
login 登录百度账号
loglist 列出帐号列表
logout 退出百度帐号
su 切换百度帐号
who 获取当前帐号
百度网盘:
cd 切换工作目录
cp 拷贝文件/目录
createsuperfile, csf 手动分片上传—合并分片文件
download, d 下载文件/目录
export, ep 导出文件/目录
locate, lt 获取下载直链
ls, l, ll 列出目录
meta 获取单个文件/目录的元信息
mkdir 创建目录
mv 移动/重命名文件/目录
offlinedl, clouddl, od 离线下载
pwd 输出工作目录
quota 获取网盘配额
rapidupload, ru 手动秒传文件
rm 删除文件/目录
search, s 搜索文件
share 分享文件/目录
tree, t 列出目录的树形图
upload, u 上传文件/目录
配置:
config 显示和修改程序配置项
命令主要分为三大类,一是有关百度网盘账号操作的,二是有关百度网盘文件操作的,三是系统配置及提示等的操作。命令行有的还提供了简写,如:列出文件目录l,秒传文件ru,列出目录的树形图t,上传文件或目录u。可以尝试输入相应的命令回车看看,不过有时会出现意向不到的效果,如:输入t则会返回网盘内所有文件的目录树形式。若网盘内文件很多则会跑很久,若需要中断只能关闭程序后重新打开。
三、cmd命令操作文件的具体使用方法
关于百度网盘账号的操作较为简单,这里直接具体说说百度网盘文件的操作。在不了解命令的用法前可以先通过帮助提示具体查看该命令的详细帮助文件,使用方法是 命令 -h 如:cd -h就可以查看切换工作目录的详细使用方法了。下面逐一进行介绍:
1.cd切换工作目录
切换工作目录有多种方式,如下,但是在切换到文件夹名称带有空格等的目录时需要将目录用引号引起来,如:在网盘根目录下有一个文件夹名称是:新建 文件夹,这时若要切换到该工作目录则需要将其用英文状态下的引号引起来cd "新建 文件夹" 这样才能成功切换,否则报错‘’文件或目录不存在‘’。
切换 /我的资源 工作目录:
cd /我的资源
切换上级目录:
cd ..
切换根目录:
cd /
切换 /我的资源 工作目录, 并自动列出 /我的资源 下的文件和目录
cd -l 我的资源
使用通配符:
cd /我的*
2.cp拷贝文件/目录
文件或目录拷贝时中间的目录是需要拷贝的,最后一个目录是需要粘贴到其中,命令、目录以及目录之间有一个空格需要注意。
USAGE:
cp
cp ...
DESCRIPTION:
注意: 拷贝多个文件和目录时, 请确保每一个文件和目录都存在, 否则拷贝操作会失败.
示例:
将 /我的资源/1.mp4 复制到 根目录 /
cp /我的资源/1.mp4 /
将 /我的资源/1.mp4 和 /我的资源/2.mp4 复制到 根目录 /
cp /我的资源/1.mp4 /我的资源/2.mp4 /
3.createsuperfile, csf 手动分片上传—合并分片文件
这种方式不建议使用,上传某个文件时该工具会默认使用自动分片上传的方式加速上传。
USAGE:
createsuperfile -path= block1 block2 ...
DESCRIPTION:
block1, block2 ... 为文件分片的md5值
上传的文件将会保存到网盘的目标目录.
遇到同名文件将会自动覆盖!
示例:
createsuperfile -path=1.mp4 ec87a838931d4d5d2e94a04644788a55 ec87a838931d4d5d2e94a04644788a55
OPTIONS:
--path value 保存的网盘路径 (default: "superfile")
4.download, d下载文件/目录
在下载网盘内的文件前先通过config命令检查下载目录信息,然后通过config set -savedir , 自定义保存的目录。
USAGE:
download ...
DESCRIPTION:
下载的文件默认保存到, 程序所在目录的 download/ 目录.
通过 config set -savedir , 自定义保存的目录.
已支持目录下载.
已支持多个文件或目录下载.
自动跳过下载重名的文件!
示例:
设置保存目录, 保存到 D:\Downloads
注意区别反斜杠 "\" 和 斜杠 "/" !!!
config set -savedir D:\\Downloads
或者
config set -savedir D:/Downloads
下载 /我的资源/1.mp4
d /我的资源/1.mp4
下载 /我的资源 整个目录!!
d /我的资源
下载网盘内的全部文件!!
d /
d *
OPTIONS:
--test 测试下载, 此操作不会保存文件到本地
--ow overwrite, 覆盖已存在的文件
--status 输出所有线程的工作状态
--save 将下载的文件直接保存到当前工作目录
--saveto value 将下载的文件直接保存到指定的目录
-x 为文件加上执行权限, (windows系统无效)
--stream 以流式文件的方式下载
--share 以分享文件的方式获取下载链接来下载
--locate 以获取直链的方式来下载
-p value 指定下载线程数 (default: 0)
-l value 指定同时进行下载文件的数量 (default: 0)
--bg 加入后台下载
5.export, ep导出文件/目录
导出文件目录时会导出该文件目录下所有文件或子目录,也包含子目录内的所有文件等,并对每个文件生成一条今后可以再妙传到网盘内的命令行。形式如下:
BaiduPCS-Go rapidupload -length=24043564 -md5=d9c174c7e26948c9bcbd0305308f8941 "/老梁1-100期/01 智商与情商:哪个重,哪个轻.mp3"
这个功能的作用和意义是非常重大的,将会专门开一篇文章进行介绍(http://blog.az009.com/15359.html),大家可以先细细想一想。
USAGE:
export ...
DESCRIPTION:
导出网盘内的文件或目录, 原理为秒传文件, 此操作会生成导出文件或目录的命令.
注意!!! :
并不是所有的文件都能导出成功, 程序会列出无法导出的文件列表
示例:
导出当前工作目录:
export
导出所有文件和目录, 并设置新的根目录为 /root
export -root=/root /
导出 /我的资源
export /我的资源
OPTIONS:
--root value 设置要导出文件或目录的根路径, 可以是相对路径
6.locate, lt获取下载直链
直接获取文件的下载直链,下载前需要先设置头文件,命令:config set -user_agent "netdisk" 用法示例: lt /木之鱼贴吧实战营销PNG防删图(4-10).mp4 回车后会显示多条下载链接。该功能只能获取文件的直链,不能获取文件夹及里面文件的直链。
USAGE:
locate ...
DESCRIPTION:
获取下载直链
若该功能无法正常使用, 提示"user is not authorized, hitcode:101", 尝试更换 User-Agent 为 netdisk:
BaiduPCS-Go config set -user_agent "netdisk"
7.ls, l, ll列出目录
列出目录功能ls具有多种参数可选,如按照名称或大小升序或降序排列目录文件。如:ls -l /000备用资源
USAGE:
BaiduPCS-Go ls
DESCRIPTION:
列出当前工作目录内的文件和目录, 或指定目录内的文件和目录
示例:
列出 我的资源 内的文件和目录
ls 我的资源
绝对路径
ls /我的资源
降序排序
ls -desc 我的资源
按文件大小降序排序
ls -size -desc 我的资源
使用通配符
ls /我的*
OPTIONS:
-l 详细显示
--asc 升序排序
--desc 降序排序
--time 根据时间排序
--name 根据文件名排序
--size 根据大小排序
8.meta获取单个文件/目录的元信息
获取文件或目录的描述信息,包含:目录路径、名称、fs_id、创建日期、修改日期、是否有子目录等
BaiduPCS-Go.exe meta - 获取单个文件/目录的元信息
AGE:
meta
SCRIPTION:
默认获取工作目录元信息
9. mkdir创建目录
创建目录,可以创建单个文件夹,也可以创建多层文件夹,如:mkdir abc/abc 在根目录中创建abc的文件夹,然后在abc文件夹中再创建abc的文件夹。
BaiduPCS-Go.exe mkdir - 创建目录
AGE:
mkdir
10.mv移动/重命名文件/目录
mv移动、重命名文件或目录可以同时进行,如:mv /木之鱼贴吧实战营销PNG防删图(4-10).mp4 /新建文件夹/abc.mp4 可以将根目录中的mp4文件移动到新建文件夹中并重命名为abc.mp4。
BaiduPCS-Go.exe mv - 移动/重命名文件/目录
USAGE:
移动:
mv ...
重命名:
mv
DESCRIPTION:
注意: 移动多个文件和目录时, 请确保每一个文件和目录都存在, 否则移动操作会失败.
示例:
将 /我的资源/1.mp4 移动到 根目录 /
mv /我的资源/1.mp4 /
将 /我的资源/1.mp4 重命名为 /我的资源/3.mp4
mv /我的资源/1.mp4 /我的资源/3.mp4
11.offlinedl, clouddl, od 离线下载
od离线下载命令支持http/https/ftp/电驴/磁力链协议。
offlinedl - 离线下载
USAGE:
offlinedl command [command options] [arguments...]
DESCRIPTION:
支持http/https/ftp/电驴/磁力链协议
示例:
1. 将百度和腾讯主页, 离线下载到根目录 /
offlinedl add -path=/ http://baidu.com http://qq.com
2. 添加磁力链接任务
offlinedl add magnet:?xt=urn:btih:xxx
3. 查询任务ID为 12345 的离线下载任务状态
offlinedl query 12345
4. 取消任务ID为 12345 的离线下载任务
offlinedl cancel 12345
COMMANDS:
add, a 添加离线下载任务
query, q 精确查询离线下载任务
list, ls, l 查询离线下载任务列表
cancel, c 取消离线下载任务
delete, del, d 删除离线下载任务
OPTIONS:
--help, -h show help
12.pwd输出工作目录
输出工作目录较为简单,显示当前工作的目录 如:处在根目录或处在切换的目录中。
13.quota获取网盘配额
quota获取网盘配额主要包括,用户名、总空间、已用空间、比率等。
用户名: 财大志疏, 总空间: 2.006836TB, 已用空间: 1.985088TB, 比率: 98.916328%
14.rapidupload, ru手动秒传文件
手动秒传文件这个功能非常好用,若百度网盘服务器中存在相应文件就可以直接秒传到自己的百度网盘中,这个功能可以配合ep导出文件或目录功能使用,可以发挥巨大的作用。详见:http://blog.az009.com/15359.html
BaiduPCS-Go.exe rapidupload - 手动秒传文件
USAGE:
rapidupload -length= -md5= -slicemd5= -crc32=
DESCRIPTION:
使用此功能秒传文件, 前提是知道文件的大小, md5, 前256KB切片的 md5 (可选), crc32 (可选), 且百度网盘中存在一模一样的文件.
上传的文件将会保存到网盘的目标目录.
遇到同名文件将会自动覆盖!
示例:
1. 如果秒传成功, 则保存到网盘路径 /test
rapidupload -length=56276137 -md5=fbe082d80e90f90f0fb1f94adbbcfa7f -slicemd5=38c6a75b0ec4499271d4ea38a667ab61 -crc32=314332359 /test
2. 精简一下, 如果秒传成功, 则保存到网盘路径 /test
rapidupload -length=56276137 -md5=fbe082d80e90f90f0fb1f94adbbcfa7f /test
OPTIONS:
--md5 value 文件的 md5 值
--slicemd5 value 文件前 256KB 切片的 md5 值 (可选)
--crc32 value 文件的 crc32 值 (可选)
--length value 文件的大小 (default: 0)
15.rm删除文件/目录
删除文件或目录可以同时删除多个,每个文件之间用空格隔开,删除文件夹时里面的文件也会一同删除。
BaiduPCS-Go.exe rm - 删除文件/目录
AGE:
rm ...
SCRIPTION:
注意: 删除多个文件和目录时, 请确保每一个文件和目录都存在, 否则删除操作会失败.
被删除的文件或目录可在网盘文件回收站找回.
示例:
删除 /我的资源/1.mp4
rm /我的资源/1.mp4
删除 /我的资源/1.mp4 和 /我的资源/2.mp4
rm /我的资源/1.mp4 /我的资源/2.mp4
删除 /我的资源 内的所有文件和目录, 但不删除该目录
rm /我的资源/*
删除 /我的资源 整个目录 !!
rm /我的资源
16.search, s搜索文件
s搜索文件可按照指定目录或递归的方式显示,包括文件的大小、md5、路径、修改时间等信息。
BaiduPCS-Go.exe search - 搜索文件
AGE:
search [-path=] [-r] 关键字
SCRIPTION:
按文件名搜索文件(不支持查找目录)。
默认在当前工作目录搜索.
示例:
搜索根目录的文件
search -path=/ 关键字
搜索当前工作目录的文件
search 关键字
递归搜索当前工作目录的文件
search -r 关键字
TIONS:
-l 详细显示
-r 递归搜索
--path value 需要检索的目录 (default: ".")
17.share分享文件/目录
分享文件或目录命令可以分享指定的文件或目录,同时可以将已分享的文件列出,如:share l 将会列出之前分享的文件SHAREID、链接、密码、路径(包含了文件名称)。
BaiduPCS-Go share - 分享文件/目录
AGE:
share command [command options] [arguments...]
MMANDS:
set, s 设置分享文件/目录
list, l 列出已分享文件/目录
cancel, c 取消分享文件/目录
TIONS:
--help, -h show help
18.tree, t列出目录的树形图
列出目录的树形图,用法:t /031号商品:Python入门到精通 将根目录下031号商品:Python入门到精通的文件夹中的文件以目录树的形式列出,示意如下:
├── 【01】Python基础开发(零基础入门学习)【内有安装包】/
│ ├── 000愉快的开始/
│ │ └── 000愉快的开始.mp4
│ ├── 001我和Python的第一次亲密接触/
│ │ └── 001我和Python的第一次亲密接触.mp4
│ ├── 002用Python设计第一个游戏/
│ │ └── 用Python设计第一个游戏.mp4
│ ├── 003小插曲之变量和字符串/
│ │ └── 003小插曲之变量和字符串.mp4
│ ├── 004改进我们的小游戏/
│ │ └── 004改进我们的小游戏.mp4
│ ├── 005闲聊之Python的数据类型/
│ │ └── 005闲聊之Python的数据类型.mp4
│ ├── 006Pyhon之常用操作符/
│ │ └── 006Pyhon之常用操作符.mp4
│ ├── 007了不起的分支和循环/
│ │ └── 007了不起的分支和循环.mp4
│ ├── 008了不起的分支和循环2/
│ │ └── 008了不起的分支和循环2.mp4
│ ├── 009了不起的分支和循环3/
│ │ └── 009了不起的分支和循环3.mp4
│ ├── 010列表:一个打了激素的数组/
│ │ └── 010列表:一个打了激素的数组.mp4
19.upload, u上传文件/目录
u上传文件或目录命令,中间是需要上传的本地文件路径,最后一下是需要存放到网盘的目录
BaiduPCS-Go.exe upload - 上传文件/目录
USAGE:
upload ...
DESCRIPTION:
上传的文件将会保存到, .
遇到同名文件将会自动覆盖!!
当上传的文件名和网盘的目录名称相同时, 不会覆盖目录, 防止丢失数据.
注意: 在上传完成后的修复md5, 不一定能成功, 但文件本身是没问题的, 只是服务器记录的md5错误而已.
示例:
1. 将本地的 C:\Users\Administrator\Desktop\1.mp4 上传到网盘 /视频 目录
注意区别反斜杠 "\" 和 斜杠 "/" !!!
upload C:/Users/Administrator/Desktop/1.mp4 /视频
2. 将本地的 C:\Users\Administrator\Desktop\1.mp4 和 C:\Users\Administrator\Desktop\2.mp4 上传到网盘 /视频 目录
upload C:/Users/Administrator/Desktop/1.mp4 C:/Users/Administrator/Desktop/2.mp4 /视频
3. 将本地的 C:\Users\Administrator\Desktop 整个目录上传到网盘 /视频 目录
upload C:/Users/Administrator/Desktop /视频
4. 使用相对路径
upload 1.mp4 /视频
OPTIONS:
--norapid 不检测秒传
--nofix 在上传完成后不修复md5
--nosplit 禁用分片上传
20.tool工具箱命令
1)tool -enc加密文件
tool enc - 加密文件
USAGE:
enc -method= -key= [files...]
DESCRIPTION:
可用的方法 :
aes-128-ctr, aes-192-ctr, aes-256-ctr,
aes-128-cfb, aes-192-cfb, aes-256-cfb,
aes-128-ofb, aes-192-ofb, aes-256-ofb.
密钥 :
aes-128 对应key长度为16, aes-192 对应key长度为24, aes-256 对应key长度为32,
如果key长度不符合, 则自动修剪key, 舍弃超出长度的部分, 长度不足的部分用'\0'填充.
GZIP :
在文件加密之前, 启用GZIP压缩文件; 文件解密之后启用GZIP解压缩文件, 默认启用,
如果不启用, 则无法检测文件是否解密成功, 解密文件时会保留源文件, 避免解密失败造成文件数据丢失.
OPTIONS:
--method value 加密方法 (default: "aes-128-ctr")
--key value 加密密钥 (default: "BaiduPCS-Go")
--disable-gzip 不启用GZIP
2)tool -dec解密文件
tool dec - 解密文件
USAGE:
dec -method= -key= [files...]
DESCRIPTION:
可用的方法 :
aes-128-ctr, aes-192-ctr, aes-256-ctr,
aes-128-cfb, aes-192-cfb, aes-256-cfb,
aes-128-ofb, aes-192-ofb, aes-256-ofb.
密钥 :
aes-128 对应key长度为16, aes-192 对应key长度为24, aes-256 对应key长度为32,
如果key长度不符合, 则自动修剪key, 舍弃超出长度的部分, 长度不足的部分用'\0'填充.
GZIP :
在文件加密之前, 启用GZIP压缩文件; 文件解密之后启用GZIP解压缩文件, 默认启用,
如果不启用, 则无法检测文件是否解密成功, 解密文件时会保留源文件, 避免解密失败造成文件数据丢失.
OPTIONS:
--method value 加密方法 (default: "aes-128-ctr")
--key value 加密密钥 (default: "BaiduPCS-Go")
--disable-gzip 不启用GZIP
四、百度网盘文件批处理的拓展
BaiduPCS-Go命令行客户端提供了一种非常好用的操作百度网盘文件的方式,其中生成目录树tree、导出文件或目录ep ,秒传文件ru,分享文件share,列出文件ls等功能对百度网盘官方客户端有很好的补充作用。但是在面对批量处理需求时需要进一步的定制和开发,如:批量分享文件,批量重命名,批量离线下载等。还好本站爱在灵灵久博客也分享了一些通过python实现批量操作百度网盘文件的方式,欢迎查阅:百度云网盘批量处理功能大全