快速学会bat脚本--- 清理磁盘垃圾

  1. 简述
    1. dos批处理脚本
    2. 后缀为 .bat 或者 .cmd
    3. 学习该命令目的: 删除电脑垃圾数据
    4. 遍历出磁盘内所有包含.bak .tmp .temp 文件的后缀, 并且删除
    5. 难点: 循环找出文件夹下的垃圾文件, 以及验证文件是否符合标准
  2. 常用
    1. 注释
      1. :定义标签的同时, 起到注释作用
        1. : 注释
        2. :: 注释
        3. :? 注释
        4. :& 注释
        5. :label 注释
        6. rem 注释
      2. %%不是指令, 不做回显, 用它作为单行注释
        1. %注释%
      3. 多行注释
        1. goto 语法 将处理器定位到要执行的行
          1. goto label 注释部分 :label label行, 跳过了注释部分
          2. goto demo 注释部分 :demo demo行, 跳过了注释部分
        2. if语法
          1. if 1==2(注释部分) 条件永远为假, 所以该注释部分不运行
    2. 常用
      1. %转义符
      2. 赋值
        1. set demo=1 变量赋值
      3. 输入
        1. demo.bat 变量1 变量2
        2. set /p demo = please import content: 变量赋值
        3. set /a 表达式赋值
          1. set /a demo1=1, demo2=2 >> 1,2
          2. set /a demo1=1+2>> 3
            1. +
            2. -
            3. *
            4. /
            5. &
            6. ^
            7. |
            8. >>
            9. << 等…
      4. 打印
        1. echo 打印内容 打印文本
        2. echo %demo% 打印变量
        3. echo %0% 打印执行程序输入的第一个值 类似执行命令: demo.bat demo1 >> demo.bat
        4. echo%1% 打印执行程序输入的第二个值 类似执行命令: demo.bat demo1 >> demo
    3. 常用命令
      1. echo
      2. @ 理解: 将命令放到一行执行, 且自动执行
        1. @pause 接上个脚本
        2. @echo off ... @echo on 单个脚本的开始结束
      3. goto将脚本定位到带标签的行
      4. rem 注释符
      5. pause 按任意键继续
        1. @pause 自动按任意键
        2. pause 需要手动按任意键
      6. call调用其他程序(倾向内部调用)
        1. call demo.bat运行程序
        2. call demo1运行标签
      7. start 运行程序并展示窗口
        1. start file.txt运行指定程序
      8. if条件语句
        1. if 条件 (程序1) else (程序2)
          1. exist 是否存在文件 if exist folder1 (条件) else
          2. defined 判断变量是否存在
          3. errorlevel 判断上个命令的返回值
        2. if a 条件表达式 b (程序)
          1. ==
          2. >
          3. <
          4. equ 相等
      9. for循环语句
        1. for
          1. for %%i in (a b c) do @echo %%i 循环输出a, b, c
          2. for %%i in (*.txt) do @echo %%i 循环当前盘符下.txt结尾的所有文件
          3. for %%i in (??.txt) do @echo %%i 循环当前盘符下两位字符且开头为.txt结尾的所有文件
          4. for %%i in (*.*) do @echo %%i 循环当前盘符下所有文件
          5. for %%i in (*.bak ,*.tmp,*.temp ) do echo %%i 找出当前盘符下所有垃圾文件
        2. for /r 遍历文件夹
          1. for /r [[drive:]path] %%variable in (set) do command [command-parameters]
            1. [[drive:]path] 文件目录
          2. for /r w: %%i in (*) do echo %%i匹配当前文件下的所有文件
        3. for /d匹配文件夹
          5.1. for /d %%i in (*) do echo %%i 匹配当前目录下的文件夹
        4. for /l
          1. for /l %variable in (start,step,end) do command [command-parameters]
            1. start起始值
            2. step步间距
            3. end终止值
          2. for /l %%i in (1 2 5) do echo %%i >> 1,3,5
        5. for /f 解析文本内容
          1. delims分割
            1. for /f "delims=," %%i in (test.txt) do echo %%i 分割逗号
            2. for /f "delims=.," %%i in (test.txt) do echo %%i 分割多个
          2. tokens取多个
            1. for /f "delims=, tokens=3" %%i in (test3.txt) do echo %%i 取第三个
            2. for /f "delims=, tokens=3,4" %%i in (test3.txt) do echo %%i %%j 取第三, 四个
            3. for /f "delims=, tokens=3-4" %%i in (test3.txt) do echo %%i %%j 取第三-四个
          3. skip行数跳过
            1. for /f "skip=2" %%i in (test.txt) do echo %%i 跳过前两行
          4. eol忽略指定字符开头
            1. for /f "eol=; " %i in (myfile.txt) do @echo %i %j
          5. 其他
            1. for /f "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
            2. for %%i in (*) do (echo %%i)
      10. exit 退出
      11. del [filName] 命令
        1. DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
          1. names 文件或者目录
          2. /p 删除每个文件前提示
          3. /f 强制删除只读文件
          4. /s 删除所有子目录中的指定文件, 并展示已经删除的文件
          5. /q 删除全局通配符, 不要求确认
          6. /a 根据属性选择要删除文件
            1. R 只读
            2. S 系统文件
            3. H 隐藏文件
            4. A 准备存档文件
            5. I 无内容索引文件
            6. L 重新分析点
            7. O 脱机文件
              • 表示否的前置
      12. DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
  3. 循环
  4. 条件语句
  5. 封装
    存在问题: 无法删除包含空格的文件及文件路径
chcp 65001
setlocal enabledelayedexpansion
@echo off 

:: 清理系统垃圾
:: 清理所有bak,tmp,temp,log结尾的垃圾文件

echo Clearing system files
for %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
	set disk=%%a:
	echo clear disk !disk!
	!disk!
	cd ../../
	for /r %%i in (*.bak,*.tmp,*.temp,*.log) do (
		del /s /q /f /s "%%i"
	)
)

echo Garbage removal completed
@echo. & pause
@echo on



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

左左才

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

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

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

打赏作者

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

抵扣说明:

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

余额充值