批处理之文件和文件夹操作

1. Dir命令

1.1. 概念

显示目录文件和子目录列表。如果在没有参数的情况下使用,则 dir 显示磁盘的卷标和序列号,后接磁盘上目录和文件的列表,包括它们的名称和最近修改的日期及时间。dir 可以显示文件的扩展名以及文件的字节大小。Dir 也显示列出的文件及目录的总数、累计大小和磁盘上保留的可用空间(以字节为单位)。

1.2. 语法

dir [Drive:][Path][FileName] […] [/p] [/q] [/w] [/d] [/a[[:]attributes]][/o[[:]SortOrder]] [/t[[:]TimeField]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]

1.3. 参数

  • [Drive:][Dath]
    指定要查看列表的驱动器和目录。

  • [FileName]
    指定要查看列表的特定文件或一组文件。

  • /p
    每次显示一个列表屏幕。要查看下一屏,请按键盘上的任意键。

  • /q
    显示文件所有权信息。

  • /w
    以宽格式显示列表,在每一行上最多显示 5 个文件名或目录名。

  • /d
    与 /w 相同,但是文件按列排序。

  • /a[[:]attributes]
    只显示那些指定属性的目录和文件名称。如果省略 /a,dir 将显示除隐藏文件和系统文件之外的所有文件名。如果在没有指定 attributes 的情况下使用 /a,dir 显示所有文件的名称,包括隐藏文件和系统文件。以下列表描述了每个可用于 attributes 的值。冒号 (😃 是可选的。使用这些值的组合,并且不得用空格分隔这些值。 值 说明

    • h 隐藏文件
    • s 系统文件
    • d 目录
    • a 准备好存档的文件
    • r 只读文件
    • -h 非隐藏的文件
    • -s 系统文件以外的文件
    • -d 只是文件(而非目录)
    • -a 自上次备份后没有更改过的文件
    • -r 非只读的文件
  • /o [[:]SortOrder]
    控制 dir 排序和显示目录名和文件名的顺序。如果省略 /o,dir 将按它们在目录中出现的顺序显示名称。如果在没有指定 SortOrder 的情况下使用 /o,dir 显示按字母顺序排列的目录名,然后显示按字母顺序排列的文件名。冒号 (😃 是可选的。以下列表描述了每个可用于 SortOrder 的值。使用这些值的任意组合,并不要用空格分隔这些值。 值 说明

    • n 按名称的字母顺序
    • e 按扩展名的字母顺序
    • d 按日期和时间,最早的优先。
    • s 按大小,最小的优先
    • g 在文件之前分组的目录
    • -n 按名称的逆序字母(从 Z 到 A)排序
    • -e 按扩展名的逆序字母(从 .ZZZ 到 .AAA)排序
    • -d 按日期和时间,最晚的优先
    • -s 按大小,最大的优先
    • -g 在文件之后分组的目录
  • /t [[:]TimeField]
    指定显示或用于排序的时间字段。以下列表描述了每个可用于 TimeField 的值。 值 说明

    • c 创建
    • a 上次访问
    • w 上次写入
  • /s
    列出指定目录及所有子目录中出现的每个指定的文件名。

  • /b
    列出每个目录名或文件名,每行一个(包含文件扩展名)。/b 不显示标题信息或摘要。/b 替代 /w。

  • /l
    按小写字母显示未排序的目录名和文件名。/l 不会将扩展字符转换为小写字符。

  • /n
    显示长列表格式,文件名在屏幕最右边。

  • /x
    显示 NTFS 和 FAT 卷上文件生成的短名称。显示与 /n 的显示相同,但是短名称显示在长名称之后。

  • /c
    按文件大小显示多个分隔符。

  • /4
    显示四位数字的年份格式。

  • /?
    在命令提示符显示帮助。

1.4. 示例

1.4.1. 基本用法

rem 显示当前目标下的文件及目录名及时间信息
dir 
rem 将当前目录文件及相关信息输出到指定文件中
dir >report.txt
rem 只显示当前目录下的文件及目录名
dir /b
rem 只显示目录,以下两种形式均可
dir /b /a:d
dir /b /a:-d
rem 只显示当前目录下的文件,以下两种形式均可
dir /b /a:-d
dir /b /a-d
rem 显示指定目录下所有文件包括子目录文件及文件夹,以下显示的完整路径
dir /b /s d:\abc

1.4.2. 排序

rem 默认以文件名排序
dir 
dir /n
rem 以时间先后排序
dir /b /d
rem 以时间反向排序
dir /b /-d
rem 用sort排序
dir /b | sort

1.4.3. 使用通配符显示包含指定字符文件

rem 显示指定后缀的文件
dir /b *.txt
dir /b *.bat *.txt
rem 显示中间包含abc的文件
dir /b *abc*
rem 显示以abc开头的文件
dir /b abc*

1.4.4 显示当前目录的文件路径

@echo off
for /f "delims=" %%a in ('dir /b /a:-d') do (
rem %%~dpnx组合扩展名,显示完整路径
echo %%~dpnxa
)
pause

1.4.5. 显示当前目录中指定类型外的文件路径

@echo off
rem "[^obj]$"必须要加双引号,否则^将是转义字符而不是取反的作用
rem ^|是管道符|的转义
rem dir /s显示的路径是全路径,所以不需要扩展路径
for /f "delims=" %%a in ('dir /a:-d /b /s ^|findstr "[^obj]$"') do (
echo %%a
)
pause

2. cd(Chdir)

2.1. 概念

显示当前目录的名称,或更改当前的文件夹。使用时仅带一个驱动器号(例如,chdir C:),则 chdir 显示当前驱动器名称和文件夹。在不含参数的情况下使用,chdir 显示当前驱动器和目录。cd是chdir的简写。

2.2. 语法

cd [[/d] [Drive:][Path] […]] [[/d] [Drive:][Path] […]]

2.3. 参数

  • /d ,更改当前驱动器或驱动器的当前目录。
  • [drive:][Path] ,指定要改为的驱动器(如果不是当前驱动器)和目录。
  • […] ,指明要改到父文件夹。
  • /? ,在命令提示符显示帮助。

2.4. 示例

rem 更换磁盘
c:
d:
rem 显示根磁盘
cd
rem 进入指定,必须是指定当前磁盘下的
cd d:\abc
rem 进入上级目录
cd ..

3. md

3.1. 概念

md,亦可写作mkdir。创建目录或子目录。

3.2. 语法

md [Drive:]Path

3.3. 参数

  • Drive: ,指定要创建新目录的驱动器。
  • Path ,必需。指定新目录的名称和位置。单个路径的最大长度由文件系统决定。
  • /? ,在命令提示符显示帮助。

3.4. 示例

rem 创建指定目录
md d:\abc
rem 创建多层目录
md d:\abc\bcd
rem 当前目录创建目录
md abd

4. rd

4.1. 概念

rd,亦作Rmdir。删除目录。

4.2. 语法

rd [drive:]path [/s] [/q]

4.3. 参数

  • [drive:]path ,指定要删除目录的位置和名称。
  • /s ,删除指定目录和所有子目录以及包含的所有文件。使用 /s 来删除目录树。
  • /q ,在安静模式中运行 rmdir。不经确认即删除目录。
  • /? ,在命令提示符显示帮助。

4.4. 注意

  • 不能删除包含隐藏或系统文件的目录
    不能删除包含文件(包括隐藏或系统文件)的目录。否则,会显示以下消息:
    The directory not empty
    使用 dir 命令列出隐藏和系统文件,使用 attrib 命令删除文件的隐藏和系统属性

4.5. 示例

rem 删除当前目录的abc目录,abc必须为空
rd abc
rem 删除当前目录下的abc目录包含子文件,且使用静默模型
rd abc /s /q

5. del

5.1. 概念

del,亦作erase。删除指定文件。

5.2. 语法

del [Drive:][Path] FileName [ …][/p] [/f] [/s] [/q] [/a[:attributes]]

5.3. 参数

  • [Drive:][Path] FileName ,指定要删除的文件或文件集的位置和名称。需要 Filename。可以使用多个文件名。用空格、逗号或分号分开文件名。

  • /p ,提示您确认是否删除指定的文件。

  • /f ,强制删除只读文件

  • /s ,从当前目录及其所有子目录中删除指定文件。显示正在被删除的文件名。

  • /q ,指定静音状态。不提示您确认删除。

  • /a ,根据指定的属性删除文件。
    attributes
    指定下列文件属性中的任意一种: 属性 说明

    • r 只读
    • a 存档
    • s 系统
    • h 隐藏
    • 前缀表明“非”
  • /? ,在命令提示符显示帮助。

5.4. 注意

  • 还可以使用通配符(* 和 ?)一次删除多个文件。但是,在使用 del 命令时要慎重地使用通配符,以避免无意
  • 使用 del 从磁盘删除某个文件之后,就无法恢复该文件。

5.5. 示例

rem 删除当前目录下的ABC目录中的所有文件(不包括子目录中的文件)
del ABC
rem 删除指定类型文件
del *.txt
del *.txt *.obj
rem 使用通配符?(指代一个字符)删除两个字符文件名的的文件
del ??.txt

6. ren

6.1. 概念

ren,亦作rename,更改一个文件或一组文件的名称。

6.2. 语法

ren [drive:][path] filename1 filename2

6.3. 参数

  • [drive:][path] filename1 ,指定要重命名的文件或文件集的位置和名称。
  • filename2 , 为文件指定新的名称。如果使用通配符(* 和 ?),filename2 为多个文件指定新名称。重新命名文件时不能指定新的驱动器或路径。
  • /? ,在命令提示符显示帮助。

6.4. 示例

rem 修改单个文件或目录名abc为bcd
ren abc bcd
rem 修改当前目录中所有.txt为.doc
ren *.txt *.doc 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值