# 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=1for 循环
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.txtdel /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的随机数|