文件与目录管理命令
概述
Windows提供了丰富的文件与目录管理命令,用于创建、查看、复制、移动和删除文件及目录。
目录浏览与导航
dir - 列出目录内容
语法:
| Text Only |
|---|
| dir [drive:][path][filename] [选项]
|
常用选项:
| 选项 |
说明 |
/a |
显示所有文件(包括隐藏和系统文件) |
/ah |
只显示隐藏文件 |
/as |
只显示系统文件 |
/b |
使用简洁格式(只显示文件名) |
/s |
显示当前目录及所有子目录中的文件 |
/o |
按指定顺序显示(n:名称, s:大小, d:日期) |
/w |
使用宽列表格式 |
/p |
每屏暂停 |
示例:
| Text Only |
|---|
| dir # 显示当前目录内容
dir C:\Windows # 显示指定目录
dir /a # 显示所有文件(含隐藏文件)
dir /s /b *.txt # 查找所有txt文件
dir /o:-d # 按日期倒序排列
dir | findstr "log" # 查找包含log的文件
|
cd - 切换目录
语法:
| Text Only |
|---|
| cd [/d] [drive:][path]
chdir [/d] [drive:][path]
|
选项:
- /d:同时切换驱动器和目录
示例:
| Text Only |
|---|
| cd # 显示当前目录
cd C:\Users # 切换到指定目录
cd .. # 返回上级目录
cd \ # 返回根目录
cd /d D:\Projects # 切换到D盘的Projects目录
|
特殊符号:
- .:当前目录
- ..:上级目录
- \:根目录
tree - 显示目录树
语法:
| Text Only |
|---|
| tree [drive:][path] [/f] [/a]
|
选项:
- /f:显示每个目录中的文件名
- /a:使用文本字符而不是图形字符
示例:
| Text Only |
|---|
| tree # 显示当前目录树
tree C:\Projects /f # 显示目录树和文件
tree /a > tree.txt # 输出目录树到文件
|
目录创建与删除
md/mkdir - 创建目录
语法:
| Text Only |
|---|
| md [drive:][path]
mkdir [drive:][path]
|
示例:
| Text Only |
|---|
| md test # 创建test目录
md dir1\dir2\dir3 # 创建多级目录
mkdir "C:\My Documents" # 创建带空格的目录
|
rd/rmdir - 删除目录
语法:
| Text Only |
|---|
| rd [/s] [/q] [drive:][path]
rmdir [/s] [/q] [drive:][path]
|
选项:
- /s:删除目录树(包括所有子目录和文件)
- /q:安静模式,不提示确认
示例:
| Text Only |
|---|
| rd test # 删除空目录
rd /s dir1 # 删除目录及其内容(需确认)
rd /s /q temp # 静默删除目录树
|
文件操作
copy - 复制文件
语法:
| Text Only |
|---|
| copy [/y | /-y] source destination
|
选项:
- /y:覆盖现有文件不提示
- /-y:覆盖前提示确认
示例:
| Text Only |
|---|
| copy file1.txt file2.txt # 复制文件
copy *.txt C:\Backup # 复制所有txt文件到Backup
copy file1.txt+file2.txt all.txt # 合并文件
copy /y source.txt dest.txt # 不提示覆盖
|
xcopy - 扩展复制
xcopy命令
高级文件复制工具,支持目录树复制。
语法:
| Text Only |
|---|
| xcopy source destination [选项]
|
常用选项:
| 选项 |
说明 |
/s |
复制目录和子目录(不包括空目录) |
/e |
复制目录和子目录(包括空目录) |
/i |
假定目标是目录 |
/y |
覆盖不提示 |
/h |
复制隐藏和系统文件 |
/r |
覆盖只读文件 |
/d:date |
只复制指定日期后修改的文件 |
/exclude:file |
排除指定文件 |
示例:
| Text Only |
|---|
| xcopy C:\Source D:\Dest /s /e # 复制整个目录树
xcopy *.txt D:\Backup /s # 复制所有txt文件
xcopy Source Dest /s /e /h /r # 复制所有文件(含隐藏)
|
robocopy - 强大的文件复制
robocopy命令
Robust File Copy,Windows最强大的文件复制工具。
语法:
| Text Only |
|---|
| robocopy source destination [file [file]...] [选项]
|
常用选项:
| 选项 |
说明 |
/s |
复制子目录(不包括空目录) |
/e |
复制子目录(包括空目录) |
/mir |
镜像目录树(相当于/e /purge) |
/xo |
排除较旧的文件 |
/xn |
排除较新的文件 |
/xx |
排除额外的文件 |
/r:n |
失败重试次数(默认100万次) |
/w:n |
重试等待时间(秒,默认30秒) |
/mt:n |
多线程复制(n为线程数) |
/log:file |
输出日志到文件 |
/z |
可重启模式 |
示例:
| Text Only |
|---|
| robocopy C:\Source D:\Dest /s /e # 复制目录树
robocopy C:\Data D:\Backup /mir # 镜像复制(同步)
robocopy C:\Source D:\Dest /s /mt:8 # 8线程复制
robocopy C:\Source D:\Dest /s /r:3 /w:5 # 重试3次,等待5秒
robocopy C:\Source D:\Dest /s /log:copy.log # 记录日志
robocopy C:\Source D:\Dest *.txt /s # 只复制txt文件
|
move - 移动文件
语法:
| Text Only |
|---|
| move [/y | /-y] source destination
|
示例:
| Text Only |
|---|
| move file.txt D:\Backup # 移动文件
move *.txt C:\Text # 移动所有txt文件
move C:\Old C:\New # 重命名目录
|
del/erase - 删除文件
语法:
| Text Only |
|---|
| del [/p] [/f] [/s] [/q] names
erase [/p] [/f] [/s] [/q] names
|
选项:
- /p:删除前确认
- /f:强制删除只读文件
- /s:删除所有子目录中的指定文件
- /q:安静模式,不提示确认
示例:
| Text Only |
|---|
| del file.txt # 删除文件
del *.tmp # 删除所有tmp文件
del /s /q *.log # 静默删除所有log文件
del /f readonly.txt # 强制删除只读文件
|
rename/ren - 重命名
语法:
| Text Only |
|---|
| rename [drive:][path]filename1 filename2
ren [drive:][path]filename1 filename2
|
示例:
| Text Only |
|---|
| rename old.txt new.txt # 重命名文件
ren *.txt *.bak # 批量修改扩展名
|
文件查找与比较
where - 查找文件
语法:
| Text Only |
|---|
| where [/r dir] [/q] [/f] pattern
|
选项:
- /r dir:从指定目录开始递归搜索
- /q:只返回退出代码
- /f:显示完整路径和文件名
示例:
| Text Only |
|---|
| where notepad # 查找notepad位置
where /r C:\ *.exe # 查找所有exe文件
where python # 查找python路径
|
fc - 文件比较
语法:
| Text Only |
|---|
| fc [/a] [/b] [/c] [/l] [/n] file1 file2
|
选项:
- /a:ASCII比较
- /b:二进制比较
- /c:忽略大小写
- /l:将文件作为ASCII文本比较
- /n:显示行号
示例:
| Text Only |
|---|
| fc file1.txt file2.txt # 比较两个文件
fc /b file1.bin file2.bin # 二进制比较
fc /c a.txt b.txt # 忽略大小写比较
|
文件属性
attrib - 查看或修改文件属性
语法:
| Text Only |
|---|
| attrib [+r | -r] [+a | -a] [+s | -s] [+h | -h] [drive:][path][filename] [/s [/d]]
|
属性:
- r:只读(Read-only)
- a:存档(Archive)
- s:系统(System)
- h:隐藏(Hidden)
示例:
| Text Only |
|---|
| attrib file.txt # 查看文件属性
attrib +h file.txt # 设置隐藏属性
attrib -r file.txt # 取消只读属性
attrib +r +h secret.txt # 设置只读和隐藏
attrib /s *.txt # 显示所有txt文件属性
|
通配符
| 通配符 |
说明 |
示例 |
* |
匹配任意字符 |
*.txt - 所有txt文件 |
? |
匹配单个字符 |
file?.txt - file1.txt, file2.txt |
示例:
| Text Only |
|---|
| dir *.exe # 所有exe文件
del file*.txt # 删除file开头的txt文件
dir doc?.txt # doc1.txt, doc2.txt等
|
实用技巧
批量重命名
| Text Only |
|---|
| ren *.jpg *.jpeg # 修改所有jpg为jpeg
|
查找大文件
| Text Only |
|---|
| dir /s /o:-s # 按大小排序(最大在前)
|
统计文件数量
| Text Only |
|---|
| dir /b *.txt | find /c /v "" # 统计txt文件数量
|
复制并保留目录结构
| Text Only |
|---|
| xcopy C:\Source D:\Dest /s /e /t # 只复制目录结构
|
合并文本文件
| Text Only |
|---|
| copy file1.txt+file2.txt+file3.txt merged.txt
type *.txt > all.txt # 合并所有txt文件
|
参考资料