Windows批处理脚本学习(.bat)

常用文件操作DOS命令

  • dir 列文件名
  • cd 改变当前目录
  • ren 改变文件名
  • copy 拷贝文件
  • del 删除文件
  • md 建立子目录
  • rd 删除目录
  • deltree 删除目录树
  • format 格式化磁盘
  • edit 文本编辑
  • type 显示文件内容
  • mem 查看内存状况
  • help 显示帮助提示
  • cls 清屏
  • move 移动文件,改目录名
  • more 分屏显示
  • xcopy 拷贝目录和文件
  • echo 显示输入内容
  • echo on 打开命令回显
  • echo off 关闭命令回显
  • @ 加上@的命令不会显示
  • pause 将程序挂起,按下任意键继续
  • > 将显示的内容输出到某处
  • >> 将显示内容追加到某处
  • >nul 命令后加上>nul表示输出到空设备
  • mode 设置窗口尺寸:mode con cols=32 lines=8
  • color 设置背景颜色:color 3a(背景(暗靛色)和文字(亮绿色))
  • title 改变当前命令提示符的标题名称
  • rem 注释(属于命令会显示出来)
  • :: 注释(不会显示出来)
  • prompt 修改当前路径为根路径并重命名
  • goto 命令跟上标签可以跳转
  • : 命令后面写标签名(不区分大小写),特殊标签:EOF或:eof不需要定义
  • call 调用批处理或者标签
  • start 启动应用程序

变量

命令解释
set var=1定义变量var并将1复制给a
set var查看变量var的值
set v查看所有v开头的变量值
set查看所有变量的值
%var%var变量的值(内容)
set /a var=48将数字48赋给变量var,32位的整数型数值,占用4个字节
set /p var用户手动输入值给var
set /p var=请输入一些文字用户手动输入值给var,并显示提示文字:“请输入一些文字”
set var=Hello world!
echo %var:o=z%输出Hello wzrld!不改变var值
set var2=%var:ld=ms and bugs%将Hello worms and bugs!赋值给var2不改变var值
%var:~m%数字m为正数表示取变量var中从左侧第m个字符以后的内容 数字m为负数表示取变量var中从右侧数第-m个字符以及其右侧所有字符
%var:~m,n%从m开始,n为正数取n个字符,n为负数取到剩-n个字符为止
set /a num=48将数值48赋值给变量num
set /a result=%num%+12变量num与12相加的结果赋给变量result
echo %result%显示变量result的值
setlocal EnableDelayedExpansion延迟变量扩充使!var!有意义

传递参数

使用%接收参数 在call或者start或者在cmd中运行批处理文件时后面直接加上参数来传递参数

接收参数:
echo 您输入的第1条参数为 %1
echo 您输入的第2条参数为 %2

传递参数:
call 被调用.bat hello world!
start 被调用.bat hello world!
./被调用.bat hello world!

条件IF

符号意义
EQU相等
NEQ不相等
LSS小于
LEQ小于等于
GTR大于
GEQ大于等于
NOT
  • if exist 判断文件是否存在
  • if defined 判断环境变量是否被定义

循环FOR

for循环的一般使用格式:for %i in (*.*) do @echo %i

:::::::批量修改文件名.bat:::::::
@echo off
setlocal EnableDelayedExpansion
set /a num=1
for %%i in (D:\test\*.txt) do (
ren "%%i" !num!.txt
set /a num+=1
)
::::::::::::::::::::::::::::::::

for循环使用数字循环的一般格式:for /l %i in (5,3,16) do echo %i

数值型变量i依次成为:5、8、11、14。从5开始,每次增加3到16为止。

::::::::::圆圈方阵.bat::::::::::
@echo off
setlocal EnableDelayedExpansion

set var=○
for /l %%i in (1,1,7) do set var=%var%!var!
:: 此时变量 var 已经变成一行连续的8个圆圈了

for /l %%i in (1,1,8) do (
echo 这是第 %%i 份>输出结果%%i.txt
for /l %%j in (1,1,8) do echo %var%>>输出结果%%i.txt
)

echo 8 X 8 的 ○ 矩阵已经画好,并保存到8份文本文件里了
pause
::::::::::::::::::::::::::::::::

组合命令

  1. &

    echo Checking what executable files we have in WINDOWS... & dir C:\WINDOWS\*.exe & echo And we got lots of stuff here.
    

    &在多个命令之间起连接作用。

    不论三者中每一条命令的结果如何,后面的一条命令总能被得到执行。

  2. &&

    和&类似,并列多条命令并将其按顺序执行。

    如果多命令中的某一条命令执行出错,后面的命令将不会再被执行;如果一直没有出错,就会一直执行完所有并列命令。

  3. ||

    ||的用途和&&恰好相反。

    当遇到执行正确的命令后将不再执行后面的命令。

    如果没有出现正确的命令则一直执行完所有命令。

管道命令

  1. >和>>

    输入重定向命令。将一条命令或某个程序输出结果的重定向到特定文件中。

    >会清除掉原文件中的内容后写入指定文件,而>>只会追加内容到指定文件中。

  2. |

    它可以将它左边命令的输出结果放到它右边的命令里作为参数。

  3. 管道命令还有<、<&和>&,它们并不常见,暂不讨论。

学习地址

Windows 批处理脚本学习教程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

return str=xi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值