Windows常用command line操作

Posted NaomiEdna

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows常用command line操作相关的知识,希望对你有一定的参考价值。

使用command line的优势在于:
速度比GUI更快
有一些软件和工具只能通过command line进行操作

目录
1. 改变目录
2. 列出文件和目录 [Tab自动补全目录名]
3. 打开文件 [清空界面,筛选文件格式,/? 命令提示符]
4. 创建和移除目录
5. 关于路径PATH
6. 关于Drives [tree;改变cmd的颜色]
7. 文件属性
8. 删除和读取文件
9. 复制和移动文件

常用command line操作:

  1. 改变目录

每当我们运行cmd [右击windows-选择run/运行-选择open/打开: cmd] ,首先看到的界面是我们的当前工作目录(current working directory), 即当前所在位置。
在explorer中我们通过双击文件夹和后退来进入下一目录和回到上一目录,这在cmd中的对应操作是
进入下一目录:输入关键词cd 加文件夹名(change directory) 即可进入下一层目录
通过cd我们还可以前进多步,只需输入cd + 路径 然后回车即可,如:

Microsoft Windows [版本 10.0.10586] (c) 2015 Microsoft
Corporation。保留所有权利。
C:\\Users\\Naomi>cd Desktop
C:\\Users\\Naomi\\Desktop>cd ..
C:\\Users\\Naomi>
C:\\Users\\Naomi>cd Desktop/built-in
C:\\Users\\Naomi\\Desktop\\built-in>cd ….
C:\\Users\\Naomi>

回到上一目录:,输入关键词cd .. (回到上一层) cd 加半角的两个句号
当我们想回去两层目录,可以输入 cd …. 即可退回 cd 加半角两个句号反斜杠再加两个半角句号

Tips:
有时候我们想更省事一些,比如想进入Desktop,在打开CMD后可以输入 cd D 再按住Tab键,CMD会帮我们自动补全D开头的目录 (如Desktop和Downloads和Documents),这样不仅节省了时间,同时降低了typo几率

2 . 列出文件和目录
查看当前目录下所有文件:
输入dir 回车 列出当前目录下所有文件夹以及文件
如下图所示,有DIR标示的为文件夹,没有DIR的文件的前面的数字即为该文件的大小,在列表最后合计一共的文件数和目录数

C:\\Users\\Naomi\\Desktop 的目录  

2016/06/22  14:24    <DIR>          .  
2016/06/22  14:24    <DIR>          ..  
2016/02/29  08:09               687 android - 快捷方式.lnk  
2016/06/22  09:53    <DIR>          built-in  
2016/06/22  11:31            11,117 built-in functions.xlsx  
2016/01/14  08:08    <DIR>          Coding  
2016/05/23  09:34             1,134 Eclipse Java Latest Released.lnk  
2016/05/19  22:06               766 Green网络加速器.lnk  
2016/06/22  14:24             1,943 JetBrains PyCharm 2016.1.4.lnk  
2016/06/22  14:24    <DIR>          shortcut  
2016/06/19  10:13             1,714 Sublime Text 3.lnk  
               6 个文件         17,361 字节  
               5 个目录  7,658,102,784 可用字节  

在当前目录下,我们还可以进入该目录下其他目录查看文件,如 在打开cmd后输入 dir Desktop/built-in 可以看到built-in目录下的文件,但是我们并不用进入Desktop或者built-in目录后查看:

 C:\\Users\\Naomi\\Desktop\\built-in 的目录  

2016/06/22  09:53    <DIR>          .  
2016/06/22  09:53    <DIR>          ..  
2016/06/22  09:53    <DIR>          iterables  
               0 个文件              0 字节  
               3 个目录  7,657,762,816 可用字节  

C:\\Users\\Naomi>   

还有一个快捷键是dir /a,这个命令同样是显示当前目录下的文件和文件夹,不同在于这个目录会显示所有的包括隐藏的文件和文件夹

3 . 打开文件和历史输入 [清空界面,筛选文件格式, /? 命令提示符]
在cmd变得看起来有些乱的时候,我们可以在任意目录下输入‘cls’ (clear screen), 这样cmd界面上所有内容都会清空

如果在某一个目录下有多种文件格式,我们可以通过输入 dir * .格式后缀 来筛选出所有的需要的格式的文件
如下,查看目录下文件以及筛选出.png结尾的文件

C:\\Users\\Naomi\\Desktop\\res>dir  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop\\res 的目录  

2016/06/22  15:01    <DIR>          .  
2016/06/22  15:01    <DIR>          ..  
2016/06/20  11:45            58,524 h1.jpg  
2016/06/20  11:48           100,652 h2.jpg  
2016/05/03  21:28           230,829 Intent.png  
2016/05/01  14:32           176,927 layout.png  
2016/05/01  20:30           490,198 lifeCycle.png  
2016/06/20  11:45            18,220 n1.jpg  
2016/06/20  11:48            17,130 n2.jpg  
               7 个文件      1,092,480 字节  
               2 个目录  7,655,817,216 可用字节  

C:\\Users\\Naomi\\Desktop\\res>dir *.png  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop\\res 的目录  

2016/05/03  21:28           230,829 Intent.png  
2016/05/01  14:32           176,927 layout.png  
2016/05/01  20:30           490,198 lifeCycle.png  
               3 个文件        897,954 字节  
               0 个目录  7,655,817,216 可用字节  

C:\\Users\\Naomi\\Desktop\\res>  

在cmd里面,如果我们想输入之前已经输入过的命令,可以通过键盘上的↑↓键来看历史输入记录
在cmd当前目录下,如果不加任何快捷键直接输入目录下的文件,我们将看到该文件会被系统默认的方式进行打开查看

/? 命令提示符,命令提示符用于显示当前命令的帮助和使用方法,在不知道某个命令该如何使用的时候可以输入该命令 加 /? 回车来获取提示。
如 ipconfig /? 可以显示IP设置以及time /? 显示时间设置等:

C:\\Users>time /?  
显示或设置系统时间。  

TIME [/T | time]  

显示当前时间设置和输入新时间的提示,请键入  
不带参数的 TIME。要保留现有时间,请按 Enter。  

如果命令扩展被启用,TIME 命令会支持 /T 命令行开关;该命令行开关告诉  
命令只输出当前时间,但不提示输入新时间。  

C:\\Users>  

4 . 创建和移除目录
创建目录:输入 mkdir + 文件夹名 回车 即在当前目录下新建了一个文件夹
移除目录:输入rmdirk + 文件夹名 回车 删除该文件夹
如:

C:\\Users\\Naomi\\Desktop>dir  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop 的目录  

2016/06/22  15:37    <DIR>          .  
2016/06/22  15:37    <DIR>          ..  
2016/06/22  15:37    <DIR>          built-in  
2016/06/22  14:24             1,943 JetBrains PyCharm 2016.1.4.lnk  
               1 个文件          1,943 字节  
               3 个目录  7,666,298,880 可用字节  

C:\\Users\\Naomi\\Desktop>mkdir Tuna  

C:\\Users\\Naomi\\Desktop>dir  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop 的目录  

2016/06/22  15:37    <DIR>          .  
2016/06/22  15:37    <DIR>          ..  
2016/06/22  15:37    <DIR>          built-in  
2016/06/22  14:24             1,943 JetBrains PyCharm 2016.1.4.lnk  
2016/06/22  15:37    <DIR>          Tuna  
               1 个文件          1,943 字节  
               4 个目录  7,666,298,880 可用字节  

C:\\Users\\Naomi\\Desktop>rmdir Tuna  

C:\\Users\\Naomi\\Desktop>dir  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop 的目录  

2016/06/22  15:37    <DIR>          .  
2016/06/22  15:37    <DIR>          ..  
2016/06/22  15:37    <DIR>          built-in  
2016/06/22  14:24             1,943 JetBrains PyCharm 2016.1.4.lnk  
               1 个文件          1,943 字节  
               3 个目录  7,666,233,344 可用字节

然而,rmdir 命令并不是所有情况下都可以用的。
比如我们在Desktop新建了Tuna文件夹,在Tuna下面再新建一个test文件夹,回到桌面后再执行rmdir命令,会看到桌面的Tuna文件夹还是存在的,cmd提示我们“目录不是空的”。因为rmdir只可以删除空文件夹

如果我们需要删除一个非空文件夹,我们可以输入rmdir /s FolderName 来执行,该命令会删除文件夹以及文件夹下面的所有文件。
如:

C:\\Users\\Naomi\\Desktop>rmdir Tuna  
目录不是空的。  

C:\\Users\\Naomi\\Desktop>rmdir /s Tuna  
Tuna, 是否确认(Y/N)? Y  

C:\\Users\\Naomi\\Desktop>dir  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop 的目录  

2016/06/22  15:47    <DIR>          .  
2016/06/22  15:47    <DIR>          ..  
2016/06/22  15:37    <DIR>          built-in  
2016/06/22  14:24             1,943 JetBrains PyCharm 2016.1.4.lnk  
               1 个文件          1,943 字节  
               3 个目录  7,666,364,416 可用字节  

C:\\Users\\Naomi\\Desktop>  

Tips:
在输入命令行的时候,如果我们想修改已经输入的命令(有时候命令比较长,虽然我们可以通过键盘的左键来修改),可以按键盘的HOME键直接跳到命令行最左端修改
如果想要跳到最右端,可以按住END键
如果按住CTRL + 左键,命令行可以向左一个词一个词的跳来帮助修改

5 . 关于路径PATH
如果我们想要进入一个绝对的目录而不是一直cd cd的话,可以做如下操作:

C:\\Users\\Naomi\\Desktop>cd "C:\\Program Files"  

注意到上述路径是“”括起来的,因为文件夹Program Files中有空格,在cmd里如果不加“”,会默认进入C:\\Program,把Files当成是一个option。所以在遇到有空格的文件夹时,需要加“”。
在目录下如果有.exe可执行文件,输入该文件名后回车 则会自动开始安装,可以按ctrl + c停止安装。

在cmd任意目录下输入path,可以看到一串的路径,接着输入未安装的可执行文件回车,即在path里面寻找希望安装的可执行文件并开始安装。PATH可以在我的电脑的属性-高级系统设置-环境变量 里进行查看和修改

6 . 关于Drives [tree;改变cmd的颜色]
Drive 是描述对特定磁盘驱动器或网络共享的属性提供访问。
在cmd里输入 wmic logicaldisk get name 可以得到所有的drive信息,一般hard drive默认是C,drive包括CD,DVD, U盘, 移动硬盘等:

C:\\Users\\Naomi>wmic logicaldisk get name  
Name  
C:  
D:  
E:  

C:\\Users\\Naomi>  

切换drive,可以直接输入drive name: (不区分大小写), 如从hard drive 转换进入USB drive (E:) :

C:\\Users\\Naomi>e:  

E:\\>  

如果想了解一个目录下的结构,可以输入tree回车,然后… Voila!
不同于dir,我们不仅可以看到里面所含有的文件目录,还有整个文件夹的结构

C:\\Users\\Naomi\\Desktop>tree  
卷 Win7 的文件夹 PATH 列表  
卷序列号为 00000013 30A7:1A99  
C:.  
└─built-in  
    ├─iterables  
    └─shortcut  
        ├─Coding  
        ├─contentProvider  
        └─res  

C:\\Users\\Naomi\\Desktop>  

接下来一个特别cool的功能,改变cmd的颜色:输入color + 对应的代码即可,具体代码信息如下: 【获取具体代码信息可以通过输入color /? 来获取】

C:\\Users\\Naomi\\Desktop>color 0G  
设置默认的控制台前景和背景颜色。  

COLOR [attr]  

  attr        指定控制台输出的颜色属性  

颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为  
前景。每个数字可以为以下任何值之一:  

    0 = 黑色       8 = 灰色  
    1 = 蓝色       9 = 淡蓝色  
    2 = 绿色       A = 淡绿色  
    3 = 浅绿色     B = 淡浅绿色  
    4 = 红色       C = 淡红色  
    5 = 紫色       D = 淡紫色  
    6 = 黄色       E = 淡黄色  
    7 = 白色       F = 亮白色  

如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时  
的颜色。这个值来自当前控制台窗口、/T 命令行开关或  
DefaultColor 注册表值。  

如果用相同的前景和背景颜色来执行 COLOR 命令,COLOR 命令  
会将 ERRORLEVEL 设置为 1。  

例如: "COLOR fc" 在亮白色上产生亮红色  

C:\\Users\\Naomi\\Desktop>  

如果说修改了颜色后想改回默认颜色,直接输入color即可
下图的MATRIX STYLE很cool吧 :-)

这里写图片描述

7 . 文件属性
文件属性这部分内容解释可参考输入 attrib /? 显示的内容:

C:\\Users\\Naomi\\Desktop>attrib /?  
显示或更改文件属性。  

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]  
       [drive:][path][filename] [/S [/D] [/L]]  

  +   设置属性。  
  -   清除属性。  
  R   只读文件属性。  
  A   存档文件属性。  
  S   系统文件属性。  
  H   隐藏文件属性。  
  I   无内容索引文件属性。  
  X   无清理文件属性。  
  V   完整性属性。  
  [drive:][path][filename]  
      指定 attrib 要处理的文件。  
  /S  处理当前文件夹  
      及其所有子文件夹中的匹配文件。  
  /D  也处理文件夹。  
  /L  处理符号链接和  
      符号链接目标的属性  


C:\\Users\\Naomi\\Desktop>  

通过cmd我们可以查看文件的属性,如下图可以看到我的路径下有一个叫milk的文本文档。
如果想要修改这个文档的属性,可以输入attrib +h 文件名,这样milk文本文档就变成了hidden的
如果想要去掉hidden属性改为readable,则可以通过attrib +r -h 文件名即可:

C:\\Users\\Naomi\\Desktop\\built-in>cd Tuna  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>attrib  
A            C:\\Users\\Naomi\\Desktop\\built-in\\Tuna\\milk.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>attrib +h milk.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>attrib  
A   H        C:\\Users\\Naomi\\Desktop\\built-in\\Tuna\\milk.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>attrib +r -h milk.txt  
C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>attrib  
A    R       C:\\Users\\Naomi\\Desktop\\built-in\\Tuna\\milk.txt  
C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>  

8 . 删除和读取文件

输入del 加想要删除的文件名即可删除文件
比如下面因为milk还是只读属性所以刚开始del显示拒绝访问,修改了属性后就可以删除了:

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>del milk.txt  
C:\\Users\\Naomi\\Desktop\\built-in\\Tuna\\milk.txt  
拒绝访问。  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>attrib -r milk.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>del milk.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>dir  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop\\built-in\\Tuna 的目录  

2016/06/22  19:24    <DIR>          .  
2016/06/22  19:24    <DIR>          ..  
               0 个文件              0 字节  
               2 个目录  7,648,645,120 可用字节  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>  

通过cmd新建或重写一个text文件可以通过echo “文本内容” > 文件名 来新建文件
type 加文件名来查看文件文本内容
如果想在原有文本内容后面添加新的内容,可以将命令里的> 改为两个,即 echo “文本内容” > 文件名 来新建文件
除此以外我们可以将cmd里面输入命令行之后的结果保存为一个文本文档,如保存dir后显示的内容可以直接输入 dir > 文档名 来保存

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>type milk.txt  
eggs are nice  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>echo milk is good for you >milk.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>type milk.txt  
milk is good for you  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>echo so are eggs >>milk.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>type milk.txt  
milk is good for you  
so are eggs  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>dir > water.txt  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>type water.txt  
 驱动器 C 中的卷是 Win7  
 卷的序列号是 30A7-1A99  

 C:\\Users\\Naomi\\Desktop\\built-in\\Tuna 的目录  

2016/06/22  19:33    <DIR>          .  
2016/06/22  19:33    <DIR>          ..  
2016/06/22  19:30                23 bacon.txt  
2016/06/22  19:31                37 milk.txt  
2016/06/22  19:33                 0 water.txt  
               3 个文件             60 字节  
               2 个目录  7,648,632,832 可用字节  

C:\\Users\\Naomi\\Desktop\\built-in\\Tuna>  

打开water文档可以看到里面正是Tuna目录下的信息:

这里写图片描述

9 . 复制和移动文件
复制文件: copy 希望复制的文件名 目标目录/路径
移动文件: move 希望移动的文件名 目标目录/路径
较之copy,我们也可以用xcopy来复制,XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件.
xcopy默认是复制目录下的文件(不包括目录),所以如果目录下还有目录,xcopy会自动忽略
想要解决上述问题,可以在命令后面加上/s,即表示复制的不仅是文件,还包括所有的子目录
重命名文件: rename 希望重命名的文件 新的名称 即可:


C:\\Users\\Naomi\\Desktop\\test>xcopy eggs Milk /s
eggs\\test1.txt
eggs\\test2.txt
eggs\\test_1.txt
eggs\\test_2.txt
4 File(s) copied

C:\\Users\\Naomi\\Desktop\\test>move eggs milk
        1 dir(s) moved.
C:\\Users\\Naomi\\Desktop\\test>rename milk water

C:\\Users\\Naomi\\Desktop\\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 8A7D-C6A3

 Directory of C:\\Users\\Naomi\\Desktop\\test

06/22/2016  11:46 PM    <DIR>          .
06/22/2016  11:46 PM    <DIR>          ..
06/22/2016  11:44 PM    <DIR>          water
               0 File(s)              0 bytes
               3 Dir(s)   7,706,173,440 bytes free
C:\\Users\\Naomi\\Desktop\\test>

如有疑问和建议,欢迎提出和讨论。

参考资料:
https://www.youtube.com/playlist?list=PL6gx4Cwl9DGDV6SnbINlVUd0o2xT4JbMu

以上是关于Windows常用command line操作的主要内容,如果未能解决你的问题,请参考以下文章

[转]How do I run msbuild from the command line using Windows SDK 7.1?

msiexec command line arguments

idea报错:Error running $classname: Command line is too long. Shorten command line for $classname.(示例代码

Mac系统常用快捷键大全

操作argc, argv的经典写法

macOX常用快捷键(结尾有彩蛋)