Windows批处理:bat文件学习

news2024/9/23 3:11:37

目录

  • 第一章、快速了解Windows批处理
    • 1.1)Windows批处理相关概念介绍
      • 1.1.1)批处理的起源
      • 1.1.2)bat文件介绍
    • 1.2)Demo
      • 1.2.1)创建文件添加命令
      • 1.2.2)bat脚本中的命令解释
  • 第二章、实例
    • 2.1)点击bat文件,批量备份文件
      • 2.1.1)定期将重要文件复制到备份目录,以防止数据丢失。
      • 2.1.2)命令解释
    • 2.2)点击bat文件,批量修改文件名称
      • 2.2.1)D盘times下文件名中添加统一日期前缀
      • 2.2.2)命令解释
      • 2.2.3)D盘times下文件名中批量删除特定的字符
      • 2.2.4)命令解释
    • 2.3)点击bat文件,自动清理临时文件:
    • 2.4)自动化测试和部署
  • 第三章、批处理文件中的命令集合
    • 3.1)常用命令
    • 3.2)不常用命令
    • 3.3)其他命令

友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。

第一章、快速了解Windows批处理

1.1)Windows批处理相关概念介绍

1.1.1)批处理的起源

①批处理(Batch),也称为批处理脚本。在计算机系统还是DOS(磁盘操作系统是一种早期的命令行操作系统)时期时被大量使用,用来对某对象进行批量的处理,通常被认为是一种简化的脚本语言,现在它应用于DOS和Windows系统中。批处理文件的扩展名为.bat(即是batch的缩写)简称 BAT文件 。

②在Windows NT以后的平台中,还加入了以.cmd为扩展名的批处理文件,其性能比.bat文件更加优越,执行也与.bat文件一样方便快捷。

1.1.2)bat文件介绍

bat文件介绍
批处理文件通常使用 .bat 或 .cmd 扩展名,并且可以包含用于执行各种任务的命令,例如文件操作、系统管理和自动化任务。Windows批处理文件可以通过文本编辑器创建,并且可以在命令提示符窗口中运行。这些命令在双击文件时按顺序执行。

解决了什么问题
Windows批处理文件解决了许多自动化任务和系统管理问题。它们允许用户编写一系列命令,在双击文件时自动执行这些命令。这样可以简化重复性任务的执行,提高效率,简化复杂任务的执行,从而减少人为错误。

1.2)Demo

1.2.1)创建文件添加命令

①创建一个扩展名为 .bat 的文件
创建echo.bat文件
在这里插入图片描述
②使用记事本/文本文档方式打开,在其中添加以下命令:

@echo off
echo helloworld
pause

在这里插入图片描述
③双击bat文件
在这里插入图片描述

1.2.2)bat脚本中的命令解释

rem命令是用来添加注释的
@echo off 命令用于关闭命令提示符窗口中的命令回显。
echo helloworld 用于在控制台打印 “helloworld”。
pause 命令用于暂停控制台,以便你可以看到 “helloworld” 的输出。
双击运行,将在控制台中看到 “helloworld” 的输出。

第二章、实例

2.1)点击bat文件,批量备份文件

2.1.1)定期将重要文件复制到备份目录,以防止数据丢失。

在filebak.bat文件中加入以下命令:

@echo off
set source=E:\test.doc
set destination=D:\Backup

xcopy %source% %destination% /E /C /H /R /Y

2.1.2)命令解释

@echo off:关闭批处理文件的命令回显,这样在执行过程中不会显示每个命令的详细信息。

set source=E:\test.doc:设置一个名为source的变量,其值为E:\test.doc,这是想要备份的重要文件的路径。

set destination=D:\Backup:设置一个名为destination的变量,其值为D:\Backup,这是想要将文件备份到的目标目录路径。

xcopy %source% %destination% /E /C /H /R /Y:这是实际执行文件复制的命令。

xcopy:用于复制文件和目录的命令。
%source%和%destination%:之前设置的变量

/E表示复制目录和子目录,/C表示继续复制,即使出现错误,
/H表示复制隐藏文件,/R表示覆盖只读文件,
/Y表示在不提示的情况下覆盖现有文件。

2.2)点击bat文件,批量修改文件名称

2.2.1)D盘times下文件名中添加统一日期前缀

添加前文件名称如下:
在这里插入图片描述
timeformat.bat文件中添加如下命令,并执行bat文件

@echo off
setlocal enabledelayedexpansion

cd /d D:\times

for %%F in (*) do (
    set "filename=%%~nF"
    set "extension=%%~xF"
    set "datestamp=!date:~0,4!!date:~5,2!!date:~8,2!"
    set "names=qq"

    ren "%%F" "!names!-!datestamp!-!filename!!extension!"
)

执行timeformat.bat文件后:
在这里插入图片描述

2.2.2)命令解释

@echo off:关闭命令回显,这样在执行过程中不会显示每个命令的详细信息。

setlocal enabledelayedexpansion:启用延迟环境变量扩展,这允许在循环中使用!来获取变量的延迟扩展值。

cd /d D:\times:切换当前目录到D:\times。

for %%F in (*) do (...):这是一个循环命令,用于遍历当前目录中的所有文件。

set "filename=%%~nF":将文件名存储在filename变量中。

set "extension=%%~xF":将文件扩展名存储在extension变量中。

set "datestamp=":创建一个名为datestamp的变量,其中包含当前日期的格式化字符串。

!date:~0,4!:表示从当前日期中提取从第0个位置开始的4个字符,即年份部分。
!date:~5,2!:表示从当前日期中提取从第5个位置开始的2个字符,即月份部分。
!date:~8,2!:表示从当前日期中提取从第8个位置开始的2个字符,即日期部分。

ren "%%F" "!datestamp!-!filename!!extension!":使用ren命令将文件重命名为包含日期前缀的新文件名。

2.2.3)D盘times下文件名中批量删除特定的字符

删除前:
在这里插入图片描述
deleteFileName.bat文件中添加如下命令,并执行bat文件

@echo off

setlocal enabledelayedexpansion

cd /d D:\times

rem 设置要删除的指定字符
set "char=extension"

for %%F in (*) do (
    set "filename=%%~nF"
    set "extension=%%~xF"
    rem 删除文件名中的指定字符
    set "newname=!filename:%char%=!"
    ren "%%F" "!newname!!extension!"
)

echo 文件名中的指定字符统一删除完成。

执行deleteFileName.bat文件后

在这里插入图片描述

2.2.4)命令解释

set "char=extension":设置要删除的指定字符为"extension"。这里的"extension"是一个示例,你可以将其替换为你想要删除的具体字符内容。

for %%F in (*) do (...):遍历当前目录下的所有文件。

set "filename=%%~nF":获取文件名部分并赋值给变量filename。

set "extension=%%~xF":获取文件扩展名部分并赋值给变量extension。

set "newname=!filename:%char%=!":使用延迟变量扩展,将文件名中的指定字符(在这里是"extension")替换为空,得到新的文件名并赋值给变量newname。

ren "%%F" "!newname!!extension!":使用ren命令将文件重命名为新的文件名。

2.3)点击bat文件,自动清理临时文件:

用于定期清理系统中的临时文件和缓存,以释放磁盘空间。不过感觉还是不要清理了,容易清理错重要文件

@echo off
echo 正在清理临时文件,请稍候...
rem 清理临时文件
del /q /s %temp%\*.*
rem 清理缓存
del /q /s "C:\Windows\SoftwareDistribution\Download\*.*"
echo 临时文件和缓存清理完成。

2.4)自动化测试和部署

使用批处理文件来自动化软件测试和部署过程,以节省时间和减少人为错误。
这个太复杂了,算了不学这个,了解了解得了

第三章、批处理文件中的命令集合

3.1)常用命令

项目Value
@echo off:关闭命令回显,使得在运行批处理文件时不显示每条命令的执行结果。
echo:用于在命令行中显示文本或变量的值。
set:用于设置和显示环境变量。
cd:用于改变当前目录。
dir:显示目录中的文件和子目录列表。
copy:复制文件。
del:删除文件。
ren:重命名文件。
start:启动一个新窗口来运行指定的程序或命令。
pause:暂停批处理文件的执行,等待用户按下任意键继续。
md:创建当前位置的新目录。
move:移动文件或目录到另一个目录。
exit:退出DOS控制台。

3.2)不常用命令

项目Value
assoc:将文件扩展名与文件类型关联起来,显示现有的关联,或删除关联。
chkdsk:检查磁盘是否存在问题。
choice:向用户提供选项列表。
convert:将卷从FAT16或FAT32文件系统转换为NTFS文件系统。
driverquery:显示所有已安装的设备驱动程序及其属性。
expand:从压缩的.cab文件中提取文件。
find:在文件或输入中搜索字符串,并输出匹配的行。
label:添加、设置或删除磁盘标签。
more:逐屏显示文件或文件的内容。
subst:为本地文件夹分配驱动器号,显示当前

3.3)其他命令

如果电脑安装了Java的JDK,批处理文件可以使用JDK提供的命令。

在批处理文件中,就可以使用javac命令来编译Java源文件,使用java命令来运行Java应用程序,以及其他JDK提供的命令。

REM 编译Java源文件
javac YourJavaFile.java

REM 运行Java应用程序
java YourJavaProgram

同理如果电脑安装了MySQL批处理文件可以使用MySQL提供的命令

REM 通过批处理文件运行MySQL命令
mysql -h hostname -u username -p < yourscript.sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1484041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

排序——手撕快排

本节复习快速排序&#xff0c; 快排我们要讲三个版本&#xff1a;一种是霍尔大佬的原版版本&#xff0c; 也就是快速排序的原版。 一种挖坑法。还有一种前后指针法。 首先我们应该知道&#xff0c;三个版本针对的是单趟进行排序的方法不同。 而多趟使用的是递归或者非递归模拟…

Carla自动驾驶仿真九:车辆变道路径规划

文章目录 前言一、关键函数二、完整代码效果 前言 本文介绍一种在carla中比较简单的变道路径规划方法&#xff0c;主要核心是调用carla的GlobalRoutePlanner模块和PID控制模块实现变道&#xff0c;大体的框架如下图所示。 一、关键函数 1、get_spawn_point(),该函数根据指定r…

360文件夹(窗口标签化工具)使用:windows系统的文件管理标签化

软件介绍 360 文件夹是一款单窗口多标签的资源管理器&#xff0c;提高了用户使用各类文件夹操作效率。单窗口多标签&#xff0c;像浏览器一样用多标签管理每个文件夹&#xff0c;以便更加快速高效地切换文件夹&#xff0c;告别凌乱的窗口&#xff0c;加快办公效率&#xff1b;…

剑指offer面试题28:对称的二叉树

#试题28&#xff1a;对称的二叉树 题目&#xff1a; 请设计一个函数判断一棵二叉树是否 轴对称 。 示例 1&#xff1a; 输入&#xff1a;root [6,7,7,8,9,9,8] 输出&#xff1a;true 解释&#xff1a;从图中可看出树是轴对称的。示例 2&#xff1a; 输入&#xff1a;root …

ssm个人学习01

Spring配置文件: spring环境的搭建: 1:导入对应的spring坐标 也就是依赖 2:编写controller, service, dao相关的代码 3:创建配置文件(在resource下面配置文件) 例如:applicationContext.xml <bean id "" class ""> <property name "&…

SQL窗口函数, 测试题

第一题 create table user_score (logday date, -- 考试时间 userid VARCHAR(20), -- 考试用户 score int); -- 考试成绩Insert into user_score values (2019-10-20,11111,85) ,(2019-10-20,22222,83) ,(2019-10-20,33333,86) ,(2019-10-21,11111,87) ,(2019-10-2…

node 之 http模块

1.什么是http模块 在网络节点中&#xff0c;负责消费资源的电脑叫做客户端&#xff1b;负责对外提供网络资源的电脑&#xff0c;叫做服务器 http模块是node.js官方提供的&#xff0c;用来创建web服务器的模块&#xff0c;通过http模块提供的http.createServer()方法&#xff0c…

烧脑问题解决办法:如何选择一款合适自己的手机流量卡

现在社会人们越来越离不开手机了&#xff0c;手机给我们生活带来了翻天覆地的变化&#xff0c;手机需要最多的就是流量了&#xff0c;所以选择一款合适自己的手机流量卡就显得尤为重要了&#xff0c;今天小编就给大家来分享一下我的经验&#xff0c;希望对大家能有帮助&#xf…

构建大语言模型的四个主要阶段

大规模语言模型的发展历程虽然只有短短不到五年的时间&#xff0c;但是发展速度相当惊人&#xff0c;国内外有超过百种大模型相继发布。中国人民大学赵鑫教授团队在文献按照时间线给出 2019 年至 2023 年比较有影响力并且模型参数量超过 100 亿的大规模语言模型。大规模语言模型…

关于synchronized介绍

synchronized的特性 1. 乐观锁/悲观锁自适应,开始时是乐观锁,如果锁冲突频繁,就转换为悲观锁 2.轻量级/重量级锁自适应 开始是轻量级锁实现,如果锁被持有的时间较长,就转换成重量级锁 3.自旋/挂起等待锁自适应 4.不是读写锁 5.非公平锁 6,可重入锁 synchronized的使用 1&#…

01背包(详细)

背包最大重量为4。 有物品3件&#xff0c;分别有其质量和价值。 vector<int> weight{1,3,4}; vector<int> value{15,20,30}; int bag4; 问背包能背的物品最大价值是多少&#xff1f; 这是标准的动态规划问题&#xff0c;每一个问题鱼鳍前面的子问题相联。 目…

structuredClone() 详解

您是否知道&#xff0c;现在 JavaScript 中有一种原生的方式可以深拷贝对象&#xff1f; 没错&#xff0c;这个内置于 JavaScript 运行时的structuredClone函数就是这样&#xff1a; const calendarEvent {title: "Builder.io大会",date: new Date(123),attendees…

#WEB前端(CSS基础)

1.实验&#xff1a;HTML是网页骨架&#xff0c;CCS是网页装修 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; style 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"view…

Ajax(黑马学习笔记)

Ajax介绍 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xff0c;所以必须涉及到…

风电机组来说,CMS振动数据和SCADA数据各有其优点和缺点

对于风电机组来说&#xff0c;CMS振动数据和SCADA数据各有其优点和缺点。 CMS振动数据的缺点主要包括&#xff1a; 数据解读难度高&#xff1a;振动数据包含大量的专业信息&#xff0c;如振动幅度、频率、相位等&#xff0c;需要专业的知识和技能才能准确解读。受环境影响大&…

DETR详解

1. 动机 传统的目标检测任务需要大量的人工先验知识&#xff0c;例如预定义的先验anchor&#xff0c;NMS后处理策略等。这些人工先验知识引入了很多人为因素&#xff0c;且较难处理。如果能够端到端到直接生成目标检测结果&#xff0c;将会使问题变得很优雅。 2. 主要贡献 提…

2024最新算法:电鳗觅食优化算法(Electric eel foraging optimization,EEFO)求解23个基准函数(提供MATLAB代码)

一、电鳗觅食优化算法 电鳗觅食优化算法&#xff08;Electric eel foraging optimization,EEFO&#xff09;由Weiguo Zhao等人提出的一种元启发算法&#xff0c;EEFO从自然界中电鳗表现出的智能群体觅食行为中汲取灵感。该算法对四种关键的觅食行为进行数学建模&#xff1a;相…

ESP8266智能家居(5)——开发APP深入篇

1.代码解析 接下来重点介绍一下逻辑代码 这里面主要是设置mqtt服务器的IP地址和端口号&#xff0c;设置服务器的用户名和登录密码 绑定好订阅主题和发布主题&#xff08;和8266上的订阅、发布交叉就行&#xff09; 绑定界面&#xff0c;设置界面标题 绑定6个文本控件 将从mq…

【C语言】熟悉文件基础知识

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 文件 为了数据持久化保存&#xff0c;使用文件&#xff0c;否则数据存储在内存中&#xff0c;程序退出&#xff0c;内存回收&#xff0c;数据就会丢失。 程序设计中&…

在您的下一个项目中选择 Golang 和 Node.js 之间的抉择

作为一名软件开发者&#xff0c;我总是在寻找构建应用程序的最快、最高效的工具。在速度和处理复杂任务方面&#xff0c;我认为 Golang 和 Node.js 是顶尖技术。两者在性能方面都享有极高的声誉。但哪一个更快——Golang 还是 Node&#xff1f;我决定深入一些硬核基准测试&…