属性 R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 I 无内容索引文件 L 重分析点 - 表示“否”的前缀
8.ren文件和文件夹重命名
ren 1.txt 2.bak #把 1.txt 更名为 2.bak
ren *.txt *.ini #把当前目录里所有.txt文件改成.ini文件 ren d:\\temp tmp #支持对文件夹的重命名 不能为目标文件指定新的驱动器或路径。
9.cls清屏
10.type显示文件内容
type c:\\boot.ini #显示指定文件的内容,程序文件一般会显示乱码 type *.txt #显示当前目录里所有.txt文件的内容 type nul > c:\\abc.txt(完美) 新建一个空白的txt文件。
11.copy拷贝文件(只能复制文件)
copy c:\\test.txt d:\\ 复制 c:\\test.txt 文件到 d:\\
copy c:\\test.txt d:\\test.bak 复制 c:\\test.txt 文件到 d:\\ ,并重命名为 test.bak
copy c:\\*.* 复制 c:\\ 所有文件到当前目录,不包括隐藏文件和系统文件。不指定目标路径,则默认目标路径为当前目录
copy con test.txt 从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件。con代表屏幕,prn代表打印机,nul代表空设备
copy 1.txt + 2.txt 3.txt 合并 1.txt 和 2.txt 的内容,保存为 3.txt 。文件如果不指定 3.txt ,则保存到 1.txt
copy test.txt + 复制文件到自己,实际上是修改了文件日期 /Y 不使用确认是否要覆盖现有目标文件的提示。(默认选项)
/-Y 使用确认是否要覆盖现有目标文件的提示。 如果文件地址有空格,要加双引号\。
12.title设置cmd窗口的标题
title 新标题 #可以看到cmd窗口的标题栏变了(没加\)
13.ver显示系统版本
14.label 和 vol设置卷标
vol #显示卷标
label #显示卷标,同时提示输入新卷标 label c:system #设置C盘的卷标为 system
15.pause暂停命令
运行该命令时,将显示下面的消息:请按任意键继续 . . . 一般用于看清楚屏幕上显示的内容
16.rem 和 ::注释命令
注释行不执行操作
rem.>c:\\abc.txt(完美) 可用于新建txt文件。 ;xxx 相当于rem命令(;后面的忽略)。
17.date 和 time日期和时间
date #显示当前日期,并提示输入新日期,按\回车\略过输入。这个日期格式需要与系统的一样,才可以被接受。
date/t #只显示当前日期,不提示输入新日期
time #显示当前时间,并提示输入新时间,按\回车\略过输入 time/t #只显示当前时间,不提示输入新时间
18.goto 和 :跳转命令
:label #行首为:表示该行是标签行,必须单独一行,标签行不执行操作 goto label #跳转到指定的标签那一行
19.find (外部命令)查找命令
find \ 在 c:\\test.txt 文件里查找含 abc 字符串的行。如果找不到,将设 errorlevel 返回码为1。引号是不可少的。 find /i \ 查找含 abc 的行,忽略大小写 find /c \ 显示含 abc 的行的行数 /V 显示所有未包含指定字符串的行。 /N 显示行号。
find \ 它表示在test.txt中查找同时存在字符串abc和字符串xyz的行,称为多重过滤。 要查找的内容就是双引号本身:把双引号本身先用双引号转义,再放到双引号对中,写成 find \的格式,如果要查找两个连续的双引号,则应该写成 find \。
find仅仅针对位于同一行上的字符串,不能查找跨行的字符块。
find与findstr的不同:
1、统计含指定字符串的总行数。find /c \可以统计test.txt中含有字符串abc的总行数,而findstr则没有直接提供该功能,需要配合for语句才能实现;
2、find可以读取Unicode格式的文本,而findstr则不行; 3、find可以过滤某些特殊字符,而findstr则不行
20.more (外部命令)逐屏显示
more c:\\test.txt #逐屏显示 c:\\test.txt 的文件内容 /C 显示页面前先清除屏幕
/S 将多个空白行缩成一个空白行(这一行还是存在)
21.tree显示目录结构
tree d:\\ #显示D盘的文件目录结构
22.&顺序执行多条命令,而不管命令是否执行成功
c: & cd\\ & dir /w 相当于把下面3行命令写到1行去了c:cd\\dir /w
23.&&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
f: && cd\\ && dir >c:\\test.txt 注意如果f盘不存在,那么后面2条命令将不会执行
find \c:\\test.txt && echo 成功 如果找到了\字样,就显示\成功\,找不到就不显示
24.||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
find \不成功 如果找不到\字样,就显示\不成功\,找到了就不显示
25.|管道命令,前一个命令的执行结果输出到后一个命令
dir *.* /s/a | find /c \ 管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令。
该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数 type c:\\test.txt|more这个和 more c:\\test.txt 的效果是一样的
附:批处理for中的管道转义|,尖号
|的作用是连接两条命令,把第一条命令的结果作为第二条命令的参数。
for /f \delims=:\%%i in ('ipconfig /all|findstr /c:\Address\do @echo %%i
for的集合中没有用^对|转义,而出错,为何出错呢?
这是因为被系统误认为|之前的第一条命令是 for /f \而不是集合中的ipconfig/all ,第二条命令是 findstr /c:\而不是findstr /c:\
for /f \不是完整的命令,当然出错。所以必须加^对|转义,它连接的只是ipconfig/all和findstr /c:\其他的& && || > >>同样道理。
26.>和>>输出重定向命令
> 清除文件中原有的内容后再写入
>> 追加内容到文件末尾,而不会清除原有的内容,主要用于将本来显示在屏幕上的内容输出到指定文件中。指定文件如果不存在,则自动生成该文件 echo hello world>c:\\test.txt 生成c:\\test.txt文件,内容为hello world 这个格式在批处理文件里用得很多,可以生成 .reg .bat .vbs 等临时文件 type c:\\test.txt >prn屏幕上不显示文件内容,转向输出到打印机
echo hello world>con在屏幕上显示hello world,实际上所有输出都是默认 >con 的
copy c:\\test.txt f: >nul拷贝文件,并且不显示\文件复制成功\的提示信息,但如果f盘不存在,还是会显示出错信息
copy c:\\test.txt f: >nul 2>nul不显示\文件复制成功\的提示信息,并且f盘不存在的话,也不显示错误提示信息
echo ^^W ^> ^W>c:\\test.txt 生成的文件内容为 ^W > W。^ 和 > 是控制命令,