首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

batch常用命令

背景介绍

最近搞自动化,需要在windows虚拟机上通过bat命令做一些配置替换,顺便学习了一下批处理命令。做个简单的入门分享吧。

批处理命令,顾名思义,就是将对象进行批量的处理,应用dos和windows系统中,扩展名是bat,所以又叫bat命令。Bat命令和其他的脚本命令类似,有自己的常用符号,和命令,分成如下三类命令分别介绍。

常用的操作文件类/系统的命令

Dir 显示一个目录下的文件和子目录

md 创建目录

cd 改变或显示当前的目录

copy 复制一个或者一组文件到制定的磁盘 或目录

del 删除一个或一组文件

ren 重命名

type 显示文件内容

format 磁盘格式化

discopy 复制出一个和原来磁盘内容一模一样 的磁盘

deltree 删除目录树

mem 查看计算机的内存

chkdsk 查看磁盘使用情况

cls 清楚显示器屏幕上的内容

time 显示dos的系统时间

date 显示dos的系统日期

var 显示正在运行的dos系统版本号

batch 编程常用命令

1 停止运行:PAUSE

Pause:运行执行到这里,会显示”请按任意键继续”

echo 其他提示语 pause > null:会显示其他的提示语

2 查看程序返回码

echo %errorlevel%,判断刚才执行的命令是否执行成功

3 调用另一个批处理命令:CALL

CALL command当另一个批处理命令执行完毕后,再继续执行原来的批处理。

4 变量延迟:

setlocal enabledelayedexpansion

变量延迟类似于其他语言里面的i++和++i的效果。例如:

@echo off

set a=4

set a=5 & echo %a%

pause

此时输出的变量是4,因为在处理set a=5 & echo %a%之前就已经预设了a=4,然后echo就是4.

但是开启了变量延迟后,使用!!来访问变量a,a的在set a=5时才赋值,就返回了正确的值。

@echo off&setlocal enabledelayedexpansion

set a=4

set a=5 & echo !a!

pause

5 设置变量 SET

set var=123

echo %var%

set /p var=请输入你的名字 /p 表示变量来与界面的输入

set /a var=3-1 /a指定右边的字符串为被评估的数字表达式。

6 IF:分支判断,常用的有四种场景:

判断驱动器、文件或文件夹是否存在,用if exist语句;

例如:if exist d:\test.txt

判断某两个字符串是否相等,用if "字符串1"=="字符串2"语句;

例如:if "abc"=="xyz"

判断某两个数值是否相等,用if 数值1 equ 数值2语句;

例如:if 1 equ 2

判断某个变量是否已经被赋值,用if defined str语句;

例如:if defined str

7 For

命令格式为 :

FOR %%variable IN (set) DO command [command-parameters]

其中:

%%variable指定一个单一字母可替换的参数。

(set)指定一个或一组文件。可以使用通配符。

command指定对每个文件执行的命令。

command-parameters为特定命令指定参数或命令行开关。 现在开始讲每个参数的意思 。

For 有4个参数,/d /l /r /f

/d仅为目录

例如:把当前目录下所有的目录名称打印出来:

@echo off

for /d %%i in (*) do @echo %%i

pause

/R 递归

/R递归

例如:把c盘内的所有目录和子目录西面exe结尾的文件都列出来:

@echo off

for /r c: %%i in (*.exe) do @echo %%i

pause

/l迭代数值范围,(start step end)

例如:打印1-5的数字

@echo off

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

pause

/f读取具体的内容,常用格式如下:

FOR /F ["options"] %%i IN (file) DO command

FOR /F ["options"] %%i IN ("string") DO command

FOR /F ["options"] %%i IN (command) DO command

则以下几个命令可以区分下具体的含义:

for %%i in (a.txt) do echo %%i

显示a.txt文件名

for /f %%i in (a.txt) do echo %%i

对于a.txt文件的内容

for /f "delims= " %%i in (a.txt) do echo %%i

显示a.txt文件内所有行的第一列

for /f "tokens=2 delims= " %%i in (a.txt) do echo %%i

显示a.txt文件内所有行的第二列

for /f "tokens=2,3 delims= " %%i in (a.txt) do echo %%i %%j

显示a.txt文件中第二列,第三列

8 命令行传递给批处理的参数:%0,%1,%2,%3…%9,%*

Batch编程常用的批处理符号

1 回显:@和echo

@:关闭回显。

echo [{ on|off }]: 打开或关系回显。

echo信息内容:打印信息内容

echo:显示当前echo设置状态

echo.:输出空行(注意echo后面有个.)

2 重定向1 > >>

3 重定向2

4 管道 |

5 转义符 ^

6 逻辑命令符& && | ||

7 变量:%%,例如可以使用一些系统变量:

%CD%本地 返回当前目录字符串。

%DATE%系统 返回当前日期

%HOMEPATH%系统 返回用户主目录的完整路径

%PATH%系统 指定可执行文件的搜索路径

8 注释命令::和REM

REM为注释命令,该命令后的内容不能被执行,但是能回显。

::也是注释命令,但是不能被回显。而且冒号后面跟一些非字母数字的特殊符号,也会被认为是注释,所以:+也能起到注释的作用。

行内注释: :%注释内容%(不常用,慎用)

9 命令行传递给批处理的参数:%0,,%1,%2,%3…%9,%*

Qtest是360旗下的专业测试团队!

是WEB平台部测试技术平台化、效率化的先锋力量!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180316G1KYAC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券