批处理bat基础知识

2024-08-29 16:28
文章标签 bat 批处理 基础知识

本文主要是介绍批处理bat基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基础知识

  1. @echo off @是不显示当前命令的回显;echo off是关闭除此之外的所有命令的回显;合在一起就是不显示所有命令的回显,包括当前命令的回显。

  2. @rem 或者 :: 批处理中的注释语法。

  3. chcp 65001切换当前cmd窗口的语言为UTF8,支持中文的显示。

  4. cd /d %~dp0切换当前目录为批处理文件所在目录。一定要加/d。

  5. setlocal enabledelayedexpansion 延时扩展。for循环里面使用最多。因为for循环是按照一行命令去执行的,批处理的机制会先预处理一下,所以要使用最新的变量值,就需要使用延迟扩展语法。

  6. > nul 放弃当前命令的输出。一般跟在一条命令的后面,表示不显示当前命令的输出内容。

  7. findstr 字符串1 文件1 >nul && (文件1包含字符串1) || (文件1不包含字符串1) 文件中查找指定字符串,并且根据查找的结果,做后续相应的操作。

  8. findstr 字符串1 文件1 if !errorlevel! equ 0 ( echo 查找到字符串 ) else ( echo 没有查找到字符串 ) 含义同5。需要使用到延迟扩展才行。

  9. echo 字符串1 | findstr 字符串2 >nul && (字符串2包含字符串1) || (字符串2不包含字符串1) 字符串中查找指定字符串,并且根据查找结果,做后续相应的操作。
    需要注意的是,findstr命令后面紧跟的&& || 代表了两种查找结果的表示方式;
    if !errorlevel! equ 0 () else ()也是一种方式,0表示查找到,其他表示没查找到。

  10. for循环
    for %%f in (%folderPath%) do ( echo %%f ) 打印路径下的每个文件的名字。
    下面列举几项 for的参数:
    for /d(D) 遍历文件夹

    ::括号里的 * 代表bat文件所在的目录
    for /d %%i in (*) do ( echo %%i )
    

    for /l(L) 数字序列

    @REM 表示以step为增量从开始到结束的一个数字序列,此处是:1开始,每次+3,20结束
    for /l %%i in (1,3,20) do (echo %%i)
    

    for /f(F) 打印文件内容

    @REM 语法格式
    @REM for /f ["options"] %%i IN (file) DO command
    @REM for /f ["options"] %%i IN ("string") DO command
    @REM for /f ["options"] %%i IN ('command') DO command::表示循环输出ls命令(列出当前目录下的文件和文件夹)的每一个项
    ::不加参数,默认以空格分割此行文本(等同于"delims= "注意有一个空格),即只显示第一个空格前或此行结尾前文本
    ::注意,此处打印文件的名字,文件名如果有空格,会截取到空格前,想要避免,加"delims="
    for /f "delims=" %%i in ('ls') do (set aa= %%iecho !aa!
    )@REM /f "tokens=2 delims= "
    @REM tokens的作用就是当你经过delims将每一行分为更小的元素时,由它来控制要取哪个或哪几个。:: 取 dilims 分成的第2个元素for /f "tokens=2 delims= " %%i in (a.txt) do echo %%i:: 取 dilims 分成的第2到4个元素for /f "tokens=2,3,4 delims= " %%i in (a.txt) do echo %%i %%j %%kfor /f "tokens=2-4 delims= " %%i in (a.txt) do echo %%i %%j %%k:: i j k 分别代表取的三个元素:: 取 dilims 分成的第2之后的元素for /f "tokens=2,* delims= " %%i in (a.txt) do echo %%i %%j %%k@REM /f “skip=1”
    @REM 用 skip 来告诉for跳过前两行。
    
  11. timeout /T 5 /NOBREAK timeout /T 延迟秒数,单位秒 不受键盘阻塞

  12. 字符拼接和截取
    截取语法:%str:~a,b%
    拼接直接拼就行

    @echo off
    @setlocal enabledelayedexpansion
    chcp 65001
    cd /d %~dp0@REM 字符串截取 [a,b) 0代表从左第一个字符,-1代表最后一个字符,b为负数则从右往左
    set str=hello world ok
    set newStr=%str:~0,-1%
    echo str=%str%
    echo newStr=%newStr%set s1=你好
    set s2=,
    set s3=你好
    set s6=%s1%%s2%%s3%
    echo %s6%pause
    

    在这里插入图片描述

参考博主的文章
参考博主的文章

这篇关于批处理bat基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1118367

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

Wondows dos下怎么编写bat批处理文件

最近搞php,在运行时,以Nginx+php-cgi.exe方式运行Wordpress项目 打开dos,先cd到php-cgi.exe文件当前目录下执行启动命令:php-cgi.exe -b 127.0.0.1:9001再打开一个dos,再cd到nginx.exe文件当前目录下执行启动命令:start nginx 大概过程要经过这些步骤,觉得很麻烦,就学下怎么编写一个bat文件,以双击运行代替

关于回调函数和钩子函数基础知识的整理

回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:   你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做完后给你打电话,我就打给你了,你拿到我的成果加到你的工作中,继续完成其它的工作.这就叫回叫,手机

有关机械硬盘的基础知识

1,机械硬盘的品牌   目前市场中常见的笔记本电脑的机械硬盘品牌主要有希捷、西部数据、三星等。   2,机械硬盘的容量   硬盘容量,即硬盘所能存储的最大数据量。虽然笔记本电脑硬盘的容量会因单位密度的提升而增加,不过和台式电脑的大容量比起来,笔记本电脑硬盘的容量仍然落后许多。笔记本电脑的硬盘除了对磁盘有体积较小和数量较少的要求之外,对功耗、耐用程度、抗震性及成本等的考虑,也让笔记

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工

插件:清理maven错误缓存.bat

插件:https://pan.baidu.com/s/1nHIxHoo1C4MvFlW7QbZe5Q?pwd=7zenhttps://pan.baidu.com/s/1nHIxHoo1C4MvFlW7QbZe5Q?pwd=7zen没错误缓存时: 有错误缓存时: