【Cmd】Windows下批处理常用命令总结

网友投稿 1323 2022-09-13

【Cmd】Windows下批处理常用命令总结

【Cmd】Windows下批处理常用命令总结

Date: 2018.6.11

1、参考

2、set命令主要用法

2.1 set打印系统环境变量

直接cmd下,输入set即可!

2.2 set设置变量的值(主要功能)

set aa=0123456789echo %aa% ##引用变量的值0123456789

2.3 set /p(基本功能)

set /p var=请输入变量的值:echo %var%

命令解析:

​​/p命令语法,作用可以在用户输入前加一段说明性的描述,即想让用户输入什么内容之类的说明。这条命令可以用于根据提示获取用户输入!​​

2.4 set /a(基本功能)

@echo offrem +运算符set /a var=1+1echo %var%rem ()运算符set /a var=(1+1) + (1+1)echo %var%rem *运算符set /a var*=2echo %var%rem ,运算符 注意:求varB和varC时,两种写法的区别set /a varA=var, varB=%var%*2, varC=var*3echo %varA% %varB% %varC%rem 与运算符,必须双引号括起来set /a varD=1"&"0echo %varD%rem 或运算符,必须双引号括起来set /a varE=1"|"0echo %varE%rem 异运算符,必须双引号括起来set /a varF=0"^"0echo %varF%pause>nul

运行结果:

命令解析:

​​/a expression 即可以用各种表达式为变量赋值。​​

2.5 set符号或变量替换(高级功能)

set src=I love youecho %src%set dest=%src:you=her%echo %dest%

运行结果:

命令解析:

set des=%src:str1=str2%

​​作用:把源变量src的值中所有的str1字符串替换成str2字符串,从而组合形成目标变量des的值。​​

应用:bat文件命令行去除变量的空格:

set abc= u v w x y z set "abc=%abc: =%" echo 去除所有空格后结果为:%abc% pause

2.6 set取舍/字符提取(高级功能)

%data:~0,4%

假设:箭头→ ← 分别表示向右、向左

set aa=1234567890

echo %aa:~1,5% //指针向右→偏移1位,然后从指针处开始向右→提取5个字符.echo %aa:~0,-3% //指针不偏移,→提取所有字符,并除去最后3个字符.echo %aa:~5% //单个数字,不指定长度值.表示指针→偏移5个字符,然后,→提取所有字符.echo %aa:~-5% //单个负值,特例,表示指针反方向偏移,从最右端起,←偏移5位,然后从指针处开始提取所有字符.也可以简单理解为提取字符串末尾5个字符.

总结: 1、偏移量为正值时,表示指针向右移动;为负值时,表示指针从字符串最右端起向左移动. 2、如果长度值为正,表示向右提取若干个字符;如果为负,表示向右提取所有字符,并去除若干个字符.”若干个=长度值的绝对值。”提取字符的方向总是自左向右进行的. 3、如果为单个数字,那么这个数字表示的是偏移量,长度值取默认值,既是字符串的”余数”,也就是从指针处开始,向右方向的所有字符.如果这个数字是负数,可以简单的理解为:提取字符串末尾的若干个字符.(正确的解释应该是:表示指针反方向偏移,从最右端起,←偏移若干位,然后从指针处开始→提取所有字符)

3、for /f命令用法

解析文本功能

命令格式:

1.FOR /F ["options"] %%i IN (file) DO command2.FOR /F ["options"] %%i IN ("string") DO command--注意双引号3.FOR /F ["options"] %%i IN ('command') DO command--注意单引号

参数说明:

file代表一个或多个文件,可以使用通配符。 string 代表字符串 command代表命令 [“options”]选项有多个: eol=c - 指定一个行注释字符,遇到c开头的行就忽略掉。 skip=n - 指定在文件开始时忽略的行数。 delims=xxx - 指定分隔符。默认是空格和TAB。 tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代 的 for 本身。这会导致额外变量名称的分配。m-n 格式为一个范围。通过 nth 符号指定 mth。如果 符号字符串中的最后一个字符星号, 那么额外的变量将在最后一个符号解析之后 分配并接受行的保留文本。 usebackq-usebackq 是一个增强型参数,当使用了这个参数之后,原来的for语句中第一个括号内的写法要做如下变动:如果第一个括号里的对象是一条命令语句的话,原来的单引号’要改为后引号`;如果第一个括号里的对象是字符串的话,原来的双引号”要改为单引号’;如果第一个括号里的对象是文件名的话,要用双引号”括起来。

for /p详细用法详见​​​​

1)切分字符串:

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

2)userbackq使用

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

usebackq 是一个增强型参数,当使用了这个参数之后,原来的for语句中第一个括号内的写法要做如下变动:如果第一个括号里的对象是一条命令语句的话,原来的单引号’要改为后引号`;如果第一个括号里的对象是字符串的话,原来的双引号”要改为单引号’;如果第一个括号里的对象是文件名的话,要用双引号”括起来。

4、findstr命令用法

功能:在文件中寻找匹配的字符串

C:\Users\Administrator>help findstr

在文件中寻找字符串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file] [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]] strings [[drive:][path]filename[ …]] /B 在一行的开始配对模式。 /E 在一行的结尾配对模式。 /L 按字使用搜索字符串。 /R 将搜索字符串作为一般表达式使用。 /S 在当前目录和所有子目录中搜索匹配文件。 /I 指定搜索不分大小写。 /X 打印完全匹配的行。 /V 只打印不包含匹配的行。 /N 在匹配的每行前打印行数。 /M 如果文件含有匹配项,只打印其文件名。 /O 在每个匹配行前打印字符偏移量。 /P 忽略有不可打印字符的文件。 /OFF[LINE] 不跳过带有脱机属性集的文件。 /A:attr 指定有十六进位数字的颜色属性。请见 “color /?” /F:file 从指定文件读文件列表 (/ 代表控制台)。 /C:string 使用指定字符串作为文字搜索字符串。 /G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。 /D:dir 查找以分号为分隔符的目录列表 strings 要查找的文字。 [drive:][path]filename 指定要查找的文件。 除非参数有 /C 前缀,请使用空格隔开搜索字符串。 例如: ‘FINDSTR “hello there” x.y’ 在文件 x.y 中寻找 “hello” 或 “there”。’FINDSTR /C:”hello there” x.y’ 文件 x.y 寻找 “hello there”。 正则表达式的快速参考: . 通配符: 任何字符 * 重复: 以前字符或类出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的结尾 [class] 字符类: 任何在字符集中的字符 [^class] 补字符类: 任何不在字符集中的字符 [x-y] 范围: 在指定范围内的任何字符 \x Escape: 元字符 x 的文字用法

功能测试可参考:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:并发编程概览
下一篇:【PE】%0 ~%9——给批处理batch脚本传递参数以及shift命令的用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~