# win命令行可以打开的工具
- 开机的时候
shift f10
可以打开命令行 - 任务管理器
taskmgr
- 查询电脑配置
dxdiag
# 常用命令
禁止命令回显
echo off
表示此语句后的所有运行的命令都不显示命令本身(不包括输出结果)@
与echo off
相似,但它是加在每个命令的最前面,只作用于当前命令,表示运行时不显示这一命令。注释
rem
用来注释。rem全称remark(不确定),意为注释。 也可以使用用::
注释输出信息
echo
表示显示此命令后的字符,也可以用于将命令后的字符串输出到文件,如下面所示echo abc to file >> targetfile.txt
上面的命令将把abc to file写到targetfile.txt。暂停
pause
暂停执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续。退出脚本
exit /b code
加上/b选项表示退出当前批处理脚本(b是bat的缩写),而不是cmd.exe,相当于函数的return语句。code是个数字,表示执行结果。调用其他批处理
call
用来调用另一个批处理,就像函数调用(如果不用call而直接调用别的批处理文件,那么执行完成那个批处理文件后将无法返回当前文件后续的命令) 在被调用的批处理里,%[1-9]
表示传递进来的参数,参数是指调用者在文件名后加以空格分隔的字符串。%0
表示批处理命令本身,其他参数字符串用%1
到%9
表示 批处理调用示例,不带参数call for.bat firstparamvalue
输出文件内容
type
用来输出文件内容,下面的命令输出subfor.bat文件的内容type subfor.bat
定义变量
set
用于定义变量。如set x=1
for 循环
for
循环遍历一个集合并执行指定命令:FOR %%variable IN (set) DO command [command-parameters]
%%variable
指定一个单一字母可替换的参数。(用集合中取出的内容替换)(set)
指定一个或一组文件。可以使用通配符。(集合)command
指定对每个文件执行的命令。command-parameters
为特定命令指定参数或命令行开关。ping www.baidu.com
@echo off
(关闭回显)echo xxx
(打印xxx,相当于print)pause
(暂停)del
(删除)del d:\test.txt
del /f /s C:\test.txt
(强制删除)cls
(清屏)rem
注释@rem xxx
(xxx是注释内容)copy D:\*.* C:\
(拷贝D盘下的文件到C)
IP地址查看(win) 查看ip配置信息。刷新,清空一下dns缓存 ipconfig
ipconfig /all
ipconfig /flushdns
写bat时等号前后不能有空格
eg1: for 循环遍历集合
set items=a b c d
set letters=x y z
for %%a in (%items%) do (
for %%b in (%letters%) do (
call subfor.bat %%a %%b
)
)
# subfor.bat
@echo off
echo echo in subfor.bat : %1 %2
2
3
4
5
6
7
8
9
10
11
12
eg2: for循环处理用通配符指定的一组文件
for %%a in (*.txt) do (
rem 如果文件名有空格,必须使用""
rem type "%%a"
)
2
3
4
eg3: for 循环处理文件内容
rem 读取text.txt中的每一行作为参数%%a的值,调用循环体
for /F "delims=" %%a in (text.txt) do (
echo %%a
)
2
3
4
eg4: 数值范围迭代
格式: for /L %%i in (start, step, end) do cmd
for /L %%i in (1, 1, 5) do echo %%i
for 循环命令的使用比较复杂,必须认真阅读使用说明。
- if语句 if语句有三种格式:
- 判定参数是否符合期望值:
if [not] "参数" == "字符串"
待执行的命令
if %1 == "abc 123" (
echo first var'value is :abc 123
) else (
echo first var'value not excepted, it is :%1
)
2
3
4
5
- 判定文件是否存在:
if [not] exist [路径\文件名]
待执行的命令
if exist "abc 123.txt" (
echo content of file abc 123.txt is :
type "abc 123.txt"
) else (
echo abc 123.txt is exist .
)
call subif.bat 3
2
3
4
5
6
7
- 根据errorlevel来执行命令
if errorlevel <数字>
待执行的命令,返回值必须按照从大到小的顺序排列 。
if errorlevel 3 (
echo errorlevel is three .
) else if errorlevel 2 (
echo errorlevel is two .
) else if errorlevel 1 (
echo errorlevel is one .
) else (
echo execute success .
)
subif.bat
@echo off
if "%1" == "" (
rem 加上/b选项表示退出当前批处理,而不是退出cmd.exe
exit /b 0
) else (
exit /b %1
)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 动态环境变量
|变量|说明|
|--|--|
|
%CD%
| 扩充为当前目录(current directory)| |%DATE%
| 扩充为当前日期| |%TIME%
| 扩充为当前时间| |%RANDOM%
| 扩充为0到32767的随机数|