批处理基础(三)基本语法与功能

Setlocal与Endlocal命令
解释:开始与终止批处理文件中环境改动的本地化操作,在执行Setlocal之后所做的环境改动只限于批处理文件;要还原原先的设置,必须执行Endlocal,Endlocal结束批处理文件中环境改动的本地化操作。
file_exist.bat文件内容如下:

@echo off
setlocal
path=d:\
echo 局部环境变量path的值:
set path
endlocal
echo 系统环境变量path的值:
set path

在这里插入图片描述
shitf命令
解释:更改批处理文件中可替换参数的位置

@echo off
:round 
if "%1"=="" goto end
echo %1内容如下:
type %1
echo.
shift
goto round
:end
echo 程序运行结束

需要说明的是,符号%0~%9专用于批处理从命令行获得的参数,依次代表命令行的相应参数。“file_exist.bat a.txt b.txt c.txt”命令运行后,首先将赋%0的值为“test.bat”、%1的值为“a.txt”、%2的值为“b.txt”、%3的值为“c.txt”。
批处理程序首先判断第一个参数是否为空,若为空则表示没有提供参数,故直接结束;
当参数不为空是,则显示相应文件的内容。当执行到“shift”命令时,会自动将%1的值赋给%0、%2的值赋给%1…,依次类推。
提示:对于本例执行的命令,可以直接使用%1、%2、%3来显示相应的文件类容,但本例可以处理任何多个参数,具有一定的通用性。
在这里插入图片描述
通配符
通配符*
解释:匹配任意数量的任意字符
通配符?
解释:匹配一个数量的任意字符
file_exist.bat文件内容如下:

@echo off
if exist *.txt echo 当前文件夹下有文本文件
echo 以p开头的目录如下:
dir /d /w /b p*
echo.
echo 以dk开头、第三个字符为任意字符、第四个字符为t、扩展名为三个字符且以do开头的文件如下:
dir /b /w dk?t.do?

在这里插入图片描述
重定向符
重定向符<
解释:将右侧内容输入到左侧
重定向符>
解释:将左侧内容输入到右侧
重定向符>>
解释:将左侧内容追加到右侧
file_exist.bat文件内容如下:
注:echo type a.txt > auto.bat表示将type a.txt这个字符串输入到auto.bat,并非将a.txt文本文件中的内容输入到auto.bat中。

@echo off
echo 正在自动创建批处理......
echo 进入auto.bat批处理文件中......
echo type a.txt > auto.bat
echo dir /b /w >> auto.bat
echo 被自动创建的auto.bat文件内容如下:
type auto.bat
echo 排序后的auto.bat文件内容如下:
sort < auto.bat

在这里插入图片描述
|命令
解释:管道符命令,用于提取数据
file_exist.bat文件内容如下:
注:该段命令表示从a.txt文件中找到所有包含good字符串的行,并将结果提取至sort进行排序,将排序后的结果输入到result.txt文件中。

@echo off
find "good" a.txt | sort > result.txt
echo 排序前
type a.txt
echo 排序后
type result.txt

在这里插入图片描述

发布了228 篇原创文章 · 获赞 44 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_40945965/article/details/86697422
今日推荐