【批处理】bat常用语句及使用技巧

前言

最近工作需要用到bat,以前没有用过。一周快速开发下来,总结我自己最常用的方法。

语句

注释

在echo off的情况下,两者都可以用。在echo on的情况下,只有@rem可以用。
pause是等待输入

rem 注释1
@rem 注释2
::注释3

在这里插入图片描述
在这里插入图片描述

输出

“”适用于对象,如果输出加上“”,就是直接输出双引号的意思。而空格是默认的分割符。
echo=是单纯换行

echo hello,World
echo=
echo "hello,World"

在这里插入图片描述

输出文本

在echo on的环境下,.和=都能清空文本。而正常输出文本使用>就可以了。

echo 你好 > text.txt
echo hello world ~ ! # > text.txt
echo.>text.txt
echo 123 > text.txt

在这里插入图片描述

常量

%cd% 是文件所在的目录
%~dp0是文件的目录

echo %cd%
echo %~dp0%

在这里插入图片描述

设置

set语句是给对象赋值,可以是常量,也可以自定义。输出时需要是%name%这样的格式。不区分大小写。
谨记一点是,符号=左右都不要用空格,否则赋值不成功。当值是空的,就会输出“ECHO 处于关闭状态。”(echo off)或”ECHO 处于开启状态。“(echo on)

set root=%cd%
set Root=helloWorld
set test = 1

echo root:%root%
echo Root:%Root%
echo test:%test%
echo %test%

在这里插入图片描述

延迟变量

延迟变量是指在复合语句中变量赋值后得到变量当前的值。因为使用%name%得到的是变量上一个的值。使用!name!就能得到当下的值。需要使用“setlocal EnableDelayedExpansion”这个语句开启延迟变量。

setlocal EnableDelayedExpansion

set value=1
echo %value%
echo=

for %%v in ( 1 2 ) do (
set num=%%v
echo %num%
echo !num!
)

在这里插入图片描述

循环

for语句能实现循环。变量的作用域就在for里面,命名是%%+一个字母,区分大小写。写的时候要注意空格,缺了就跑不起来了。

for %%v in ( hello world "AAA" ) do ( echo %%v )

在这里插入图片描述

文本

读取文本的所有信息,需要结合for一起使用。 /f的意思是显示字符。

for /f %%v in ( test.txt ) do ( echo %%v )

在这里插入图片描述
字符串匹配有两个语句:find和findstr。find支持管道,就是使用|符号。前者得到值,能够传给后者。

for /f %%v in ( test.txt ) do ( echo %%v|find "," )

在这里插入图片描述
findstr支持正则,注意匹配多用+,不是用*

findstr "你好" test.txt

在这里插入图片描述
需要自定义分隔符时,搭配使用delims和tokens。delims是分隔符,默认是空格,tokens是需要显示的列数,默认是1,索引就是从1开始,更多是*。注意,如果写了具体的数值,就只会出现指定的列。

for /f "delims=, tokens=1" %%v in ( test.txt ) do ( echo %%v )

在这里插入图片描述
在这里插入图片描述

判断

if是如果,可以搭配else。判断是否存在就是用exist。也可以搭配运算符一起使用。
else的的位置必须是右括号的后面,所以右括号建议换行。

if exist test.txt ( echo 存在test.txt 
) else ( echo 不存在test.txt )

set value=1

if value equ 0 ( echo 0 
) else ( echo %value% )

在这里插入图片描述

延迟

单位是秒,填多少就等待多少秒。

TIMEOUT /T 2

在这里插入图片描述

删除

::删除非空文件夹
rmdir /s /q dir
::删除文件
del file

等待

TIMEOUT /T 5

后言

使用的时候千万要注意“”,()和空格的运用。很多时候语法并没有问题,就是这些格式的问题。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值