# win命令行可以打开的工具

  1. 开机的时候 shift f10 可以打开命令行
  2. 任务管理器 taskmgr
  3. 查询电脑配置 dxdiag

# 常用命令

  1. 禁止命令回显 echo off 表示此语句后的所有运行的命令都不显示命令本身(不包括输出结果) @echo off 相似,但它是加在每个命令的最前面,只作用于当前命令,表示运行时不显示这一命令。

  2. 注释 rem 用来注释。rem全称remark(不确定),意为注释。 也可以使用用 :: 注释

  3. 输出信息 echo 表示显示此命令后的字符,也可以用于将命令后的字符串输出到文件,如下面所示 echo abc to file >> targetfile.txt 上面的命令将把abc to file写到targetfile.txt。

  4. 暂停 pause 暂停执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续。

  5. 退出脚本 exit /b code 加上/b选项表示退出当前批处理脚本(b是bat的缩写),而不是cmd.exe,相当于函数的return语句。code是个数字,表示执行结果。

  6. 调用其他批处理 call 用来调用另一个批处理,就像函数调用(如果不用call而直接调用别的批处理文件,那么执行完成那个批处理文件后将无法返回当前文件后续的命令) 在被调用的批处理里,%[1-9] 表示传递进来的参数,参数是指调用者在文件名后加以空格分隔的字符串。 %0 表示批处理命令本身,其他参数字符串用%1%9 表示 批处理调用示例,不带参数 call for.bat firstparamvalue

  7. 输出文件内容 type 用来输出文件内容,下面的命令输出subfor.bat文件的内容 type subfor.bat

  8. 定义变量 set 用于定义变量。如 set x=1

  9. 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
1
2
3
4
5
6
7
8
9
10
11
12

eg2: for循环处理用通配符指定的一组文件

for %%a in (*.txt) do (
    rem 如果文件名有空格,必须使用""
    rem type "%%a"
)
1
2
3
4

eg3: for 循环处理文件内容

rem 读取text.txt中的每一行作为参数%%a的值,调用循环体
for /F "delims=" %%a in (text.txt) do (
    echo %%a
)
1
2
3
4

eg4: 数值范围迭代 格式: for /L %%i in (start, step, end) do cmd

for /L %%i in (1, 1, 5) do echo %%i
1

for 循环命令的使用比较复杂,必须认真阅读使用说明。

  1. 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
)
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
1
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
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  1. 动态环境变量 |变量|说明| |--|--| | %CD% |                           扩充为当前目录(current directory)| | %DATE% |                      扩充为当前日期| | %TIME% |                       扩充为当前时间| | %RANDOM% |                扩充为0到32767的随机数|