Windows系列:Windows命令行复制、移动、删除文件
Windows命令行复制、移动、删除文件
命令行提供了一系列文件管理工具,实现了复制、删除、移动、重命名、替换等基本功能。
- 复制 copy
- 移动 move
- 删除 del/erase
- 重命名 ren/rename
下面从简单到复杂,分别介绍这四种命令。
重命名
ren是rename的简写,用于文件重命名,这两个命令在命令行中是完全一致的,用法十分简单,只需以此填上修改前后的文件名即可。
>dir /B
test.txt
>ren test.txt test1.txt
>dir /B
test1.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
移动
move命令也需要源文件和目标文件两个路径,使用方法如下
::创建新文件夹
>cd test
>dir test /B
::移动文件
>move test1.txt test
>dir test /B
test1.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
但是,在移动文件的过程中,如果出现了同名文件,那么就会发出是否覆盖文件的提示
:: 新建一个test1.txt
>dir /B
test
test1.txt
>move test1.txt test
覆盖 。。。\test\test1.txt 吗? (Yes/No/All): no
移动了 0 个文件。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
如果不希望有这个提示,则可采用/Y
开关。
>move /Y test1.txt test
移动了 1 个文件。
- 1
- 2
在脚本中,会默认使用/Y
开关,如果希望覆盖目标时有提示,则需用/-Y
来声明。
删除
del和erase在DOS中是同义词,均用于删除文件或文件夹,以del为例,其标准语法为
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
- 1
其中names为文件或者目录列表,并且支持通配符。如果指定了一个目录,则会删除该目录中的所有文件。
/A
显示具有指定属性的文件,其可用后缀如下
R | 只读文件 | H | 隐藏文件 | A | 准备存档的文件 |
S | 系统文件 | I | 无内容索引文件 | ||
L | 重新分析点 | O | 脱机文件 | - | 表示“否”的前缀 |
示例如下
>del test
\test\*, 是否确认(Y/N)? n
>del /q test
>dir
>dir /B test
:: test文件夹中所有文件均被删除
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
复制
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 个文件。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
此外,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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
在上面的代码中,通过加号将两个test.txt合并复制到merge.txt中,同时打开/A
开关,表示以ASCII的形式合并,从而merge.txt的内容刚好是两个test.txt
的内容。换言之,用copy
命令可以合并两个文本文件。
如果是一个文本文件和一个图像通过二进制形式合并在一起,那么就会出现有趣的现象
>copy /B test.png + merge.txt new.png
test.png
merge.txt
已复制 1 个文件。
- 1
- 2
- 3
- 4
如图所示
即这张png文件,既能作为图片打开,同时用记事本打开之后,最后还能看到merge.txt
的内容。