windows dos命令行太丑,推荐使用 cmder,有非常漂亮的主题,而且可以模拟linux终端的命令。
  • cd dir : 切换目录
  • cd … : 返回上级目录
  • cd / : 返回根目录
  • cls ; 清屏
  • pause : 暂停

dir 命令

dir命令:

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  [drive:][path][filename]
              指定要列出的驱动器、目录和/或文件。

  /A          显示具有指定属性的文件。
  属性      D  目录                   R  只读文件
               H  隐藏文件            A  准备存档的文件
               S  系统文件            I  无内容索引文件
               L  解析点             -  表示“否”的前缀

  /B          使用空格式(没有标题信息或摘要)。(对于文件来说,只显示文件名和扩展名,这一条比较实用!)
  /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来禁用分隔符显示。
  /D          跟宽式相同,但文件是按栏分类列出的。
  /L          用小写。
  /N          新的长列表格式,其中文件名在最右边。
  /O          用分类顺序列出文件。
  排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
               E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
               G  组目录优先           -  反转顺序的前缀
  /P          在每个信息屏幕后暂停。
  /Q          显示文件所有者。
  /R          显示文件的备用数据流。
  /S          显示指定目录和所有子目录中的文件。
  /T          控制显示或用来分类的时间字符域。
  时间段      C  创建时间
              A  上次访问时间
              W  上次写入的时间
  /W         用宽列表格式。
  /X         显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,短名称插在长名称前面。如果没有短名称,在其位置则显示空白。
  /4         用四位数字显示年

可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。

举例说明:

1.显示d盘目录列表:dir d:
2.显示c盘windows文件夹下的隐藏文件:dir c:\windows\ /ah
3.显示c盘windows文件夹下的目录文件:dir c:\windows /ad
4.显示c盘windows文件夹下的系统文件:dir c:\windows /as 或 dir c:\windows\ /a:s
5.用记事本打开c盘windows文件夹下的bootstat.dat文件:>notepad c:\windows\bootstat.dat
6.显示c盘windows文件夹下的只读文件(注意只读文件也有文件夹):dir c:\windows /ar
7.显示c盘windows文件夹下的非系统文件:dir c:\windows\ /a-s
8.显示c盘windows文件夹下的准备存档文件(虽然不知道什么是"准备存档文件",但是结果确实显示出了一堆):dir c:\windows\ /aa
9.显示c盘windows文件夹下的无内容索引文件(还真显示出来了一个目录"Prefetch",进去之后内容还挺多):dir c:\windows\ /ai /x
10.显示c盘windows文件夹下的解析点文件(依然不懂什么叫做"解析点",结果显示找不到文件)dir c:\windows\ /al
11.使用空格式显示d盘文件目录列表(没有标题信息或摘要):Desktop>dir d:\ /b
12.规定千位数分隔符显示d盘目录列表(默认):dir d:\ /c
13.规定取消千位数分隔符显示d盘文件大小(文件列表中的文件大小真的取消了千位分隔符):dir d:\ /-c
14.让显示的列表按栏列出(即按屏幕宽度分成几列来显示,目录要用[]扩起来):dir c:\windows\ /d
15.用小写显示文件目录列表:dir c:\windows\ /l
16.测试/N参数(新的长列表格式,其中文件名在最右边),没感觉到和直接"dir"有什么不同
17.测试/O参数(对列表排序)省略
18.测试/P参数(不明白什么意思)省略
19.显示出文件的所有者(结果在文件名前多了一列:BUILTIN\Administrators,builtin是windows内建用户组也即windows的administrator用户组):dir d:\ /q
20.测试/R参数(不明白什么意思)省略
21.显示指定目录和所有子目录中的文件(注:很强大,递归罗列出来所有目录列表):dir demo /s
22.测试/T(不明白什么意思)省略
23.用宽列表显示当前目录(经试验就是横排排列目录和文件,其中目录用[]扩起来):dir /w
24./X 显示为非 8.3 文件名产生的短名称:dir /x
关于8.3格式:即文件名".“之前字符必须小于8字符,”."之后字符必须小于3个字符,如果大于则映射成8.3格式的文件名字
映射规则,如:
3.xlsx 映射成 31DEE~1.XLS
abcdefghi.txt 映射成 ABCDEF~1.TXT
新建 Microsoft Office Excel 工作表.xlsx 映射成 新建MI~1.XLS
这种映射造成的问题是:
在命令行中使用:[del *.txt]批量删除文本文件的时候也会将"mytxtb.txtb"文件错误的删除掉
25.用4位数字显示年(没有看出与默认的有什么不同):dir /4

文件、目录(创建、修改、删除、复制、移动)

创建目录

mkdir (or md) 这2个命令完全等效。

  • 在命令行用 help mkdir (or help mkdir) 查看用法
  • mkdir可以创建在资源管理器中不能创建的以**.**开头的目录。
  • mkdir创建多个目录时,多个目录中间用空格隔开。eg: mkdir d1 d2 d3.
MKDIR [drive:]path
MD [drive:]path

如果需要,MKDIR 会在路径中创建中级目录。例如: 假设 \a 不
存在,那么:
    mkdir \a\b\c\d
与:
    mkdir \a
    chdir \a
    mkdir b
    chdir b
    mkdir c
    chdir c
    mkdir d
相同。如果扩展被停用,则需要键入 mkdir \a\b\c\d。

创建文件,查看、追加、修改文件内容

type nul>filename.etc  :: (文件名.后缀名)来创建新文件

or

cd.>filename.etc

echo "内容">filename.etc :: 创建有内容的文件名

enho "内容2">> filename.etc :: 追加内容到filename.etc

type + 文件名 %查看文件内容%

%输入文件全名(包含拓展名)打开文件,系统会使用该格式默认的工具打开%
%打开文件后,可修改内容%
filename.etc

or

start filename.etc

注:type nul> 命令不同同时创建多个文件。

eg:

  1. type nul> t1.txt
  2. type nul> t2.doc

删除文件

DEL (or erase)删除一个或数个文件。


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

  names         指定一个或多个文件或者目录列表。多个文件(目录)中间用空格隔开。
                通配符可用来删除多个文件。
                如果指定了一个目录,该目录中的所有文件都会被删除。

  /P            删除每一个文件之前提示确认。默认的选项。
  /F            强制删除只读文件。
  /S            删除所有子目录中的指定的文件。
  /Q            安静模式。删除全局通配符时,不要求确认
  /A            根据属性选择要删除的文件
  属性          R  只读文件                     S  系统文件
                H  隐藏文件                    A  存档文件
                I  无内容索引文件               L  重分析点
                -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经删除的文件,而不显示找不到的文件。

eg:

del 1.txt
del 1.txt 2.doc %删除多个文件,中间用空格隔开%
del d1 d2 d3  %只删除d1 d2 d3目录下的所有文件,不删除d1 d2 d3目录%
E:\jde\d1\*, 是否确认(Y/N)? y
E:\jde\d2\*, 是否确认(Y/N)? y
E:\jde\d3\*, 是否确认(Y/N)? y

del *.txt % 删除所有后缀为.txt文件%

删除目录

rd (or RMDIR) 删除目录,不带参数只能删除非空目录。

RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path
    /S      除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。
    /Q      安静模式,带 /S 删除目录树时不要求确认

修改、替换目录或文件名

REN (or PENNAME)
重命名文件或目录。

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

请注意,您不能为目标文件指定新的驱动器或路径。
CD (OR CHDIR)显示当前目录名或改变当前目录。

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

  ..   指定要改成父目录。

键入 CD drive: 显示指定驱动器中的当前目录。
不带参数只键入 CD,则显示当前驱动器和目录。

使用 /D 开关,除了改变驱动器的当前目录之外,还可改变当前驱动器。

如果命令扩展被启用,CHDIR 会如下改变:

当前的目录字符串会被转换成使用磁盘名上的大小写。所以,
如果磁盘上的大小写如此,CD C:\TEMP 会将当前目录设为C:\Temp。

CHDIR 命令不把空格当作分隔符,因此有可能将目录名改为一个带有空格但不带有引号的子目录名。例如:
     cd \winnt\profiles\username\programs\start menu
与下列相同:
     cd "\winnt\profiles\username\programs\start menu"
在扩展停用的情况下,您必须键入以上命令。

REPLACE 替换文件。

替换目录可通过先删除源目录,再复制或移动目录实现. or 用MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2命令。

REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]
REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U]

  [drive1:][path1]filename 指定源文件。
  [drive2:][path2]         指定要替换文件的目录。
  /A                       把新文件加入目标目录。不能和/S 或 /U 命令行开关搭配使用。
                           默认的参数(如果[drive2:][path2]中无此文件,则添加)
  /P                       替换文件或加入源文件之前会先提示您进行确认。
  /R                       替换只读文件以及未受保护的文件。
  /S                       替换目标目录中所有子目录的文件。不能与 /A 命令开关搭配使用。
  /W                       等您插入磁盘以后再运行。
  /U                       只会替换或更新比源文件日期早的文件。不能与 /A 命令行开关搭配使用。

eg: 如下目录结构

c:\jed
	d1
    	1.txt "content:i am txt"
    	2.doc "content:word+img"
    	3.php "content:shell document"
    d2
        d3
        	1.txt
    	1.txt "content:hello"
    	tv.xls "content:word table"
        3.php "content:shell document"

cd d2
replace ..\d1\1.txt
正在替换 E:\jde\d2\1.txt

replace /S ..\d1\1.txt
正在替换 E:\jde\d2\1.txt
正在替换 E:\jde\d2\d3\1.txt

复制、移动文件、目录

复制

COPY将一份或多份文件复制到另一个位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

  source       指定要复制的文件。
  /A           表示一个 ASCII 文本文件。
  /B           表示一个二进位文件。
  /D           允许解密要创建的目标文件
  destination  为新文件指定目录和/或文件名。
  /V           验证新文件写入是否正确。
  /N           复制带有非 8dot3 名称的文件时,尽可能使用短文件名。
  /Y           不使用确认是否要覆盖现有目标文件的提示。
  /-Y          使用确认是否要覆盖现有目标文件的提示。
  /Z           用可重新启动模式复制已联网的文件。
/L           如果源是符号链接,请将链接复制到目标而不是源链接指向的实际文件。

命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY命令是在一个批处理脚本中执行的,默认值应为在覆盖时进行提示。

要附加文件,请为目标指定一个文件,为源指定数个文件(用通配符或 file1+file2+file3 格式)

xcopy 复制文件和目录树。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
                           [/EXCLUDE:file1[+file2][+file3]...]

  source       指定要复制的文件。
  destination  指定新文件的位置和/或名称。
  /A           仅复制有存档属性集的文件,但不更改属性。
  /M           仅复制有存档属性集的文件,并关闭存档属性。
  /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
               如果没有提供日期,只复制那些源时间比目标时间新的文件。
  /EXCLUDE:file1[+file2][+file3]...
               指定含有字符串的文件列表。每个字符串在文件中应位于单独的一行。
               如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制
               该文件。例如,指定如 \obj\ 或 .obj 的字符串会分别排除目录
               obj 下面的所有文件或带有 .obj 扩展名的所有文件。
  /P           创建每个目标文件之前提示您。
  /S           复制目录和子目录,不包括空目录。
  /E           复制目录和子目录,包括空目录。与 /S /E 相同。可以用来修改 /T。
  /V           验证每个新文件的大小。
  /W           提示您在复制前按键。
  /C           即使有错误,也继续复制。
  /I           如果目标不存在,且要复制多个文件,则假定目标必须是目录。
  /Q           复制时不显示文件名。
  /F           复制时显示完整的源文件名和目标文件名。
  /L           显示要复制的文件。
  /G           允许将加密文件复制到不支持加密的目标。
  /H           也复制隐藏文件和系统文件。
  /R           覆盖只读文件。
  /T           创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括
               空目录和子目录。
  /U           只复制已经存在于目标中的文件。
  /K           复制属性。一般的 Xcopy 会重设只读属性。
  /N           用生成的短名称复制。
  /O           复制文件所有权和 ACL 信息。
  /X           复制文件审核设置(隐含 /O)。
  /Y           取消提示以确认要覆盖现有目标文件。
  /-Y          要提示以确认要覆盖现有目标文件。
  /Z           在可重新启动模式下复制网络文件。
  /B           复制符号链接本身与链接目标相对。
  /J           复制时不使用缓冲的 I/O。推荐复制大文件时使用。

开关 /Y 可以预先在 COPYCMD 环境变量中设置。这可能被命令行上的 /-Y 覆盖。

移动

  • move移动文件并重命名文件和目录。
  • move也可移动目录(及包含的所有子目录及文件)
要移动至少一个文件:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination

要重命名一个目录:
MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2

  [drive:][path]filename1 指定您想移动的文件位置和名称。
  destination             指定文件的新位置。目标可包含一个驱动器号和冒号、一个目录名或组合。
                          如果只移动一个文件并在移动时将其重命名,您还可以包括文件名。
  [drive:][path]dirname1  指定要重命名的目录。
  dirname2                指定目录的新名称。

  /Y                      取消确认覆盖一个现有目标文件的提示。
  /-Y                     对确认覆盖一个现有目标文件发出提示。

命令行开关 /Y 可以出现在 COPYCMD 环境变量中。这可以用命令行上的 /-Y 替代。
默认值是,除非 MOVE 命令是从一个批脚本内执行的,覆盖时都发出提示。

other常用、实用的DOS命令

1.TREE :以图形显示启动器或路径的目录结构。

E:.                         
├─bin                       
├─config                    
│  └─profile.d              
├─icons                     
└─vendor                    
    ├─bin                   
    ├─clink                 
    ├─clink-completions     
    │  ├─.vscode            
    │  ├─modules            
    │  └─spec               
    ├─conemu-maximus5       
    │  ├─ConEmu             
    │  │  ├─Addons          
    │  │  ├─clink           
    │  │  ├─DosBox          
    │  │  ├─Far1_reg        
    │  │  ├─Far2_fml        
    │  │  ├─Far2_reg        
    │  │  ├─Far3_fml        
    │  │  ├─Far3_lua        
    │  │  ├─Scripts         
    │  │  └─wsl             
    │  └─plugins            
    │      └─ConEmu         
    │          ├─Background 
    │          │  └─img     
    │          ├─Lines      
    │          └─Thumbs     
    ├─lib                   
    └─psmodules             

2.PATH:为可执行文件显示或设置搜索路径。