• 巧用.bat批处理文件


    一、概念先行

    搜狗词条解释:
    bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。[1]入侵者常常通过批处理文件的编写来实现多工具的组合入侵、自动入侵及结果提取等功能。

    二、入门基础

    在这里插入图片描述

    怎么添加注释:使用rem或者::或者@echo,
    rem:有回显功能
    :: :普通注释
    @echo:关闭这一行回显功能

    **怎么让执行信息停留在界面?**使用pause
    pause,让脚本暂停,通常为了防止cmd一闪而过,添加pause,方便查看输出内容
    相对路径 和绝对路径?

    @echo off  
    ::相对路径
    echo relative path >C:\>1\相对路径.txt  
    ::绝对路径
    echo absolute path >C:\Users\zhilan.zheng\Desktop\1\绝对路径.txt 
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6


    使用bat运行截图工具?

    
    start snippingtool
    
    • 1
    • 2

    程序运行是否正确?

    errorlevel 程序返回码 echo %errorlevel% 每个命令运行结束,可以用这个命令行格式查看返回码
    用于判断刚才的命令是否执行成功 默认值为0,一般命令执行出错会设 errorlevel 为1

    CALL理解?

    CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理 CALL command
    调用一条批处理命令,和直接执行命令效果一样,特殊情况下很有用,比如变量的多级嵌套,见教程后面。在批处理编程中,可以根据一定条件生成命令字符串,用call可以执行该字符串,见例子。
    CALL [drive:][path]filename [batch-parameters] 调用的其它批处理程序。filename
    参数必须具有 .bat 或 .cmd 扩展名。 CALL :label arguments
    调用本文件内命令段,相当于子程序。被调用的命令段以标签:label开头 以命令goto :eof结尾。

    一些特殊的符号:

    常用特殊符号
    1、@ 命令行回显屏蔽符
    2、% 批处理变量引导符
    3、> 重定向符
    4、>> 重定向符
    5、<、>&、<& 重定向符
    6、| 命令管道符
    7、^ 转义字符
    8、& 组合命令
    9、&& 组合命令
    10、|| 组合命令
    11、“” 字符串界定符
    12、, 逗号
    13、; 分号
    14、() 括号
    15、! 感叹号
    16、批处理中可能会见到的其它特殊标记符: (略)
    CR(0D) 命令行结束符
    Escape(1B) ANSI转义字符引导符
    Space(20) 常用的参数界定符
    Tab(09) ; = 不常用的参数界定符
    + COPY命令文件连接符
    * ? 文件通配符
    / 参数开关引导符
    : 批处理标签引导符

    三、使用示例【超实用】

    dir命令:

    `前缀名
    @echo off
    title 批量添加前缀名
    echo.
    echo 本批处理可批量添加前缀名
    echo.
    echo.&set /p strtemp3= 请输入要添加前缀的文件类型:
    echo.&set /p strtemp2= 请输入要添加前缀的文件名字符串(不变则直接回车):
    setlocal enabledelayedexpansion
    for /f "delims=" %%a in ('dir /a /b *.%strtemp3%') do (
    ren "%%~a" "%strtemp2%%%a")
    echo.
    echo OK了!
    echo.
    pause`
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    后缀名
    @echo off
    title 批量添加后缀名
    echo.
    echo 本批处理可批量添加后缀名
    echo.
    echo.&set /p strtemp3= 请输入要添加后缀名:
    echo.&set /p strtemp2= 请输入要添加后缀名字符串(不变则直接回车):
    setlocal enabledelayedexpansion
    for /f "delims=" %%a in ('dir /a /b *.%strtemp3%') do (
    ren "%%~a" "%%a.%strtemp2%")
    echo.
    echo OK了!
    echo.
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    @echo off
    
    echo 正在清除系统垃圾文件,请稍等......
    del /f /s /q %systemdrive%\*.tmp
    del /f /s /q %systemdrive%\*._mp
    del /f /s /q %systemdrive%\*.log
    del /f /s /q %systemdrive%\*.gid
    del /f /s /q %systemdrive%\*.chk
    del /f /s /q %systemdrive%\*.old
    del /f /s /q %systemdrive%\recycled\*.*
    del /f /s /q %windir%\*.bak
    del /f /s /q %windir%\prefetch\*.*
    rd /s /q %windir%\temp & md %windir%\temp
    del /f /q %userprofile%\小甜饼s\*.*
    del /f /q %userprofile%\recent\*.*
    del /f /s /q "%userprofile%\Local Settings\Temporary Internet  Files\*.*"
    del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
    del /f /s /q "%userprofile%\recent\*.*"
    echo 清除系统LJ完成!
    echo. & pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    ::查看文件下的一类文件
    @echo off
    for /r "C:\1" %%v in (*.txt) do echo %%v # 匹配*.txt
    pause>nul
    ::批量修改文件属性  
    ren *.ss *.jpg
    ::新建一个文件并往文件里面写入hello word
    @echo off  
    echo hello world >nihao.c
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    人机交互一下?

    @echo off
    echo 1.aa
    echo 2.bb
    :first
    echo Enter your choice:
    set /p opt=
    if %opt%==1 goto one
    if %opt%==2 goto two
    echo no such choice
    goto first
    ​
    :one
    echo your choice 1
    pause:nul
    exit
    ​
    :two
    echo your choice 2
    pause:nul
    exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    如何录制视频?有了这款视频录制软件,粉丝多了,转发量也起来了
    安卓开发项目优化小技巧
    Python中上下文管理器解析
    使用WebDriver采样器将JMeter与Selenium集成
    KmeansR趋势分析
    seata at模式死锁
    Python案例|Pandas正则表达式
    【自学前端】HTML篇已完结(附14节视频)
    判断能否被3, 5, 7整除
    程序批量下载图片不完整解决方案for Python
  • 原文地址:https://blog.csdn.net/weixin_43673603/article/details/126268017