批处理 - 总结

来源:互联网 发布:数据录入员兼职 编辑:程序博客网 时间:2024/05/17 01:17

常用命令

@不显示此行的路径信息
:: //注释掉一行
rem //注释掉一行, 和::相同
echo information //输出一行信息
echo. //输出空行
echo on/off //打开/关闭显示路径信息
>afile //输出信息到afile
>>afile //追加信息到afile
<afile //从afile中获取信息作为前边命令的输入
pause //暂停
call name.bat //调用一个批处理过程
%0 ... %9 //调用批处理过程是传递的参数
:aLabel //设置标签
goto aLabel //语句跳转, 应该和:aLabel配合使用
set sname=value //设置环境变量sname值为value
%sname% //引用sname的值
| //管道连接, 不管前边命令运行成功还是失败, 都运行后边的
|| //只有前边运行不成功才会运行后边的
& //
&& //只有前边运行成功才会运行后边的
and/or //并且/或者, 和if一起用
choise //在windows的command里边没有此命令
shift //在windows的command里边没有此命令

if

if [not] "abc"=="abc" aCommand //
if [not] exist aFile/aPath aCommand //如果存在aFile/aPath 则执行aCommand

for

for %a in (1,a,5) do echo %a //循环输出1,a,5
for /f "tokens=2,3* delims=/,/" %i in ("aaa/bbb/ccc/ddd/eee", "1/2/3/4") do echo %i-%j-%k
//      从第2个开始迭代  分隔符 开始字符   迭代字符串
//输出bbb-ccc-ddd/eee
for /f "skip=1 tokens=2,3* delims=/,/" %i in (afile) do echo %i-%j-%k
//      跳过第一行, 其他和上边一个相同, 有多少行输出多少次

字符串截取

set test=abcdefghijklmn
::从下标2截取长度3, 输出cde
echo %test:~2,3%
::从下标2截取到倒数下标3, 输出cdefghijk
echo %test:~2,-3%
::从倒数下标4截取到倒数下标3, 输出k
echo %test:~-4,-3%
::从下标1截取到最后, 输出bcdefghijklmn
echo %test:~1%
::从开始截取长度4, 输出abcd
echo %test:~,4%

字符串替换

set test=abcdefghijklmn
::替换bcd为wxyz
echo %test:bcd=wxyz%

技巧: 创建一个空文件

/>afile