WIndows命令行不区分大小写

获取帮助

在cmd中,在命令后输入/?即可

1
C:\Users\zerwa> echo /?

echo

输出,类似于Log。

1
echo on/off

打开Log/关闭Log

使用

1
@echo off (命令内容) pause

来组合各种命令,不会让很多命令一个一个显示,这在后面的WIndows批处理会用到。

cd

cd是一个非常经典的命令,从DOS系统就有了,全称是“change directory”

进入到对应的文件夹下

1
cd (path)

如果不是在当前盘符,需要先执行主盘符:

1
cd d:

注意,就算进入了对应的文件夹,命令行的运行环境还是在C:\Users\zerwa

进入上一级目录

1
cd ..

改变命令行运行环境,比如说进入D盘根目录,在进入前添加/d即可

1
cd /d d:\

进入E盘

1
cd /d e:\

进入其他盘只需要直接输入盘符也可以(不输入cd),并且会自动进入上次进入其他盘时的子文件夹。

例如:

1
2
3
4
D:\>e:
E:\>c:
C:\Users\zerwa>e:
E:\>

直接进入其他盘符的命令等同于cd /d d:

比如说

1
2
C:\Users\zerwa>d:
D:\>

等同于

1
2
C:\Users\zerwa>cd /d d:
d:\>

和上面的cd /d d:\一样

dir

cd到对应的盘或文件夹后,输入dir就能获取当前文件夹内所有的目录(不管是文件还是文件夹都会显示)以及基本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
D:\>dir
驱动器 D 中的卷是 Data
卷的序列号是 F436-DDB7

D:\ 的目录

2023/07/06 13:58 <DIR> BaiduNetdiskDownload
2022/05/02 14:37 <DIR> CloudMusic
2022/05/27 16:59 <DIR> CSP文件
2022/03/29 23:29 <DIR> Drivers
2022/07/04 15:49 <DIR> Games
2022/05/01 14:40 <DIR> LenovoSoftstore
2023/06/18 21:28 <DIR> LeStoreDownload
2022/05/04 09:32 <DIR> My Blogs
2023/07/06 10:25 <DIR> Program FIles
2022/05/01 15:28 <DIR> Program Files (x86)
2022/06/04 16:00 <DIR> Unity Projects
0 个文件 0 字节
12 个目录 195,779,559,424 可用字节
D:\>

输入dir /b,获取当前文件夹内所有的目录名称(不管是文件还是文件夹都会显示)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
D:\>dir /b
BaiduNetdiskDownload
CloudMusic
CSP文件
Drivers
Games
LenovoSoftstore
LeStoreDownload
My Blogs
Program FIles
Program Files (x86)
Unity Projects

D:\>

输入dir /p分页显示当前文件夹内所有的目录(不管是文件还是文件夹都会显示)以及基本信息

输入dir /ad获取当前文件夹内所有文件夹的名称以及基本信息。

输入dir /a-d获取当前文件夹内所有文件的名称以及基本信息。

输入dir (具体的文件名及拓展名)获取具体的文件的信息

例如:

1
2
3
4
D:\>dir ttt.txt
2023/07/08 12:25 12 ttt.txt
1个文件 12个字节
0个目录 195,779,559,424 可用字节

输入dir (具体的文件夹名)获取具体的文件子目录的信息

例如:

1
D:>dir Games

tree

将指定的文件夹内的所有内容按照树形图展示出来

例如:

1
E:>tree e:\Work

ren

ren就是“rename”将当前文件夹内指定的文件改名

1
E:\Work>ren ttt.txt 测试.txt

ren也可以将指定的文件夹内的文件改名

1
E:\>ren E:\Work\测试.txt 测试2.txt

md

md就是“make directory”,从当前目录创建文件夹

1
E:\>md 测试文件夹

md也可以在指定的文件夹内创建文件夹

1
E:\>md E:\Work\测试文件夹

rd

md就是“remove directory”,从当前目录删除空文件夹

1
E:\>rd 测试文件夹

rd也可以在指定的文件夹内删除空文件夹

1
E:\>rd E:\Work\测试文件夹

如果文件夹内不是空的,可以使用如下命令,完全删除

1
2
3
4
5
6
7
E:\>rd 测试
目录不是空的

E:>rd 测试 /s
测试,是否确认(Y/N)? y

E:>

在Jenkins打包过程中,肯定是不能自行输入”y”的,可以使用如下命令

1
2
3
4
5
6
E:\>rd 测试
目录不是空的

E:>rd 测试 /s /q

E:>

/q指的是”quite mode”,即安静模式,不需要提出Y/N请求。

copy

复制文件

例如,将E:\Work\测试.txt拷贝到E盘根目录

1
E:\Work>copy 测试.txt E:\

如果存在同名文件,会询问是否覆盖

1
2
3
4
5
E:\Work>copy 测试2.txt E:\
已复制 1个文件

E:\Work>copy 测试2.txt E:\
覆盖 E:\测试2.txt 吗?(Yes/No/All)

如果不想要被询问,输入/y

1
2
3
4
5
E:\Work>copy 测试2.txt E:\
已复制 1个文件

E:\Work>copy /y 测试2.txt E:\
已复制 1个文件

复制文件并重命名

1
E:\Work>copy 测试.txt E:\测试重命名.txt

复制文件夹下面所有的文件到对应目录,但不包括子文件夹

1
2
3
E:\Work>copy /y 测试文件夹 E:\
测试文件夹\测试1.txt
已复制 1个文件

复制文件到自己,实际修改了文件日期

1
E:\Work>copy 测试2.txt +

将当前目录下的“测试1.txt”与“测试2.txt”合并写入“测试3.txt”

1
E:\Work>copy /y 测试1.txt+测试2.txt 测试3.txt

xcopy

复制文件夹下面所有的文件到对应目录,但不包括子文件夹

1
2
3
E:\xcopy E:\Work\测试文件夹 E:\
E:\Work\测试文件夹\测试1.txt
复制了1个文件

复制文件夹下面所有的文件(不包括子文件夹)到对应目录,并且新建目录

1
2
3
4
5
6
E:\xcopy E:\Work\测试文件夹 E:\TestFolder
目标E:\TestFolder 是文件名
还是目录名
(F = 文件,D = 目录)? D
E:\Work\测试文件夹\测试1.txt
复制了1个文件

复制文件夹下面所有的文件到对应目录,包括子文件夹,添加/s命令即可

1
2
3
4
E:\xcopy E:\Work\测试文件夹 /s E:\
E:\Work\测试文件夹\测试1.txt
E:\Work\测试文件夹\新建文件夹\测试2.txt
复制了2个文件

复制文件夹下面所有的文件到对应目录,并设置条件包括子文件夹,下面是按照“月-日-年”来作为文件夹的指定条件并进行复制

1
E:\xcopy E:\work E:\TestCopy /d:1-13-2023 /s /y

move

移动文件,就是剪切

1
2
E:\Work>move 测试2.txt E:\ /y
移动了 1个文件

移动时,还可以通过通配符进行筛选

1
E:\Work>move *.txt E:\ /y

如果移动文件到指定已经存在的文件夹,注意添加上反斜杠

如果移动文件夹(包括子文件夹和子文件)到一个新建的文件夹里,不加反斜杠

1
E:\Work>move 测试文件夹 E:\New

这样写会在E盘新建一个名字为New的文件夹,New文件夹内部是“测试文件夹”内部的子文件夹和子文件

如果移动文件夹(包括子文件夹和子文件)到一个已经存在的文件夹里,不加反斜杠

1
E:\Work>move 测试文件夹 E:\New

这样会把“测试文件夹”本身和它的子文件夹和子文件都移动到New文件夹的子文件目录

del

删除文件,不会删除文件夹及子文件夹

1
2
E:\>del 测试文件夹
E:\测试文件夹\*,是否确认(Y/N)? y

在例子中删除了“测试文件夹”内的文件,“测试文件夹”本身以及其内部的子文件夹都不会被删除

只能删除所有非只读文件,在删除前还会确认,不能使用/y命令

如果想要删除只读文件,添加/F指令

1
E:\>del /F 测试文件夹

上面的命令和下面这一行命令等价

1
2
E:\>del 测试文件夹\*
E:\测试文件夹\*,是否确认(Y/N)? y

删除所有的子文件夹和文件,包括只读,并且不询问

1
E:\>del /F /S /Q 测试文件夹

删除当前目录下所有的只读文件

1
E:\Work>del /ar *.*

删除当前目录除系统文件以外的所有文件

1
E:\Work>del /a-s *.*

replace

替换文件

1
E:\>replace E:\Work\测试2.txt E:\某文件夹

注意,第一个E:\Work\测试2.txt是需要替换的文件,第二个E:\某文件夹是一个路径