命令行提供了一系列文件管理工具,实现了复制、删除、移动、重命名、替换等基本功能。

  • 复制 copy
  • 移动 move
  • 删除 del/erase
  • 重命名 ren/rename

下面从简单到复杂,分别介绍这四种命令。

重命名

ren是rename的简写,用于文件重命名,这两个命令在命令行中是完全一致的,用法十分简单,只需以此填上修改前后的文件名即可。

>dir /B
test.txt

>ren test.txt test1.txt

>dir /B
test1.txt

移动

move命令也需要源文件和目标文件两个路径,使用方法如下

::创建新文件夹
>cd test
>dir test /B

::移动文件
>move test1.txt test
>dir test /B
test1.txt

但是,在移动文件的过程中,如果出现了同名文件,那么就会发出是否覆盖文件的提示

:: 新建一个test1.txt
>dir /B
test
test1.txt
>move test1.txt test
覆盖 。。。\test\test1.txt 吗? (Yes/No/All): no
移动了         0 个文件。

如果不希望有这个提示,则可采用/Y开关。

>move /Y test1.txt test
移动了         1 个文件。

在脚本中,会默认使用/Y开关,如果希望覆盖目标时有提示,则需用/-Y来声明。

删除

del和erase在DOS中是同义词,均用于删除文件或文件夹,以del为例,其标准语法为

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

其中names为文件或者目录列表,并且支持通配符。如果指定了一个目录,则会删除该目录中的所有文件。

/A显示具有指定属性的文件,其可用后缀如下

R只读文件H隐藏文件A准备存档的文件
S系统文件I无内容索引文件
L重新分析点O脱机文件-表示“否”的前缀

示例如下

>del test
\test\*, 是否确认(Y/N)? n

>del /q test

>dir

>dir /B test
:: test文件夹中所有文件均被删除

复制

copy和move有一个共同的特性,即目标文件夹中存在同名文件时,会进行询问,而通过/Y/-Y开关可以关闭提示

>copy test.txt test
已复制         1 个文件。

>copy test.txt test
覆盖 test\test.txt 吗? (Yes/No/All): no
已复制         0 个文件。

>copy /Y test.txt test
已复制         1 个文件。

此外,copy还有如下开关指令

  • /D 允许解密要创建的目标文件
  • /V 验证新文件写入是否正确。
  • /N 复制带有非 8dot3 名称的文件时,尽可能使用短文件名。
  • /Z 用可重新启动模式复制已联网的文件。
  • /L 如果源是符号链接,请将链接复制到目标而不是源链接指向的实际文件。

合并复制

由于copy指令支持多个文件的复制,而将多个文件复制成一个文件,其实就是合并文件,对此copy有两个开关/A/B分别表示ASCII模式和二进制模式。

>type test.txt
test

>copy /A test.txt+test.txt merge.txt
test.txt
test.txt
已复制         1 个文件。

>type merge.txt
test
test

在上面的代码中,通过加号将两个test.txt合并复制到merge.txt中,同时打开/A开关,表示以ASCII的形式合并,从而merge.txt的内容刚好是两个test.txt的内容。换言之,用copy命令可以合并两个文本文件。

如果是一个文本文件和一个图像通过二进制形式合并在一起,那么就会出现有趣的现象

>copy /B test.png + merge.txt new.png
test.png
merge.txt
已复制         1 个文件。 

如图所示

在这里插入图片描述

即这张png文件,既能作为图片打开,同时用记事本打开之后,最后还能看到merge.txt的内容。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐