windows中命令行批处理脚本学习

news2024/10/23 0:47:35

目录

    • 一 基础知识
    • 二 常见命令
      • 1. 输出 echo
      • 2. 注释 rem .... %...% :: goto if (1==0) ()
      • 3. 变量 set
      • 4. 获取参数 %数字 %*
      • 5. 退出 exit
      • 6. 复制 copy
      • 7.读取输出文件内容 type
      • 8. 帮助 命令xxx /?
      • 9.等待当前命令运行结束后,才执行下一条命令 call
      • 10. 修改字体编码 chcp
      • 11. 特殊变量
    • 三 结构
      • 1. 顺序结构
      • 2. 分支结构
      • 3. 循环结构

一 基础知识

  1. windows中命令的关键字大小写不敏感
  2. 批处理解释器对赋值语法的要求是非常严格的,必须是set 变量名=值的格式,等号左右没有空格
  3. 命令的参数使用正斜杠 即 /

二 常见命令

1. 输出 echo

  1. echo xxx 类似c语言的printf(“xxx”)
  2. echo off 在批处理脚本中,默认命令都会回显展示, 如果不想回显命令本身,就使用该命令关掉。
  3. @xxxxxxx xxxxxx这条命令不回显,所以常见的用法是,通过@echo off 关闭整个脚本的命令回显。
  4. 输出写入到文件,
    echo xxxx > 1.txt 覆盖,
    echo xxxx >> 1.txt 追加

2. 注释 rem … %…% :: goto if (1==0) ()

参照大神精辟总结
做简要摘录:
在这里插入图片描述

3. 变量 set

  1. 通过命令set来定义变量, 通过%变量名%来调用变量
set var1=hello
echo %var1%
  1. 在 Windows 批处理脚本中,所有变量都被视为字符串,即使你存储的是数字。你可以进行数字运算,但默认情况下,系统把变量看作文本处理。因此,当你定义变量时,不用考虑类型问题。如果你想要进行数字运算,可以使用 set /a,系统会自动将变量视为整数进行处理:/a 表示“arithmetic”(算术)
set /a var5=5
set /a var6=%var5%+1
echo %var6%

注意var6也必须定义为数字类型的变量,否则得到的是5+1这个文本

  1. 如果你想要定义空字符串,你可以简单地这样做:set var2=
  2. 获取用户输入。set /p 是批处理脚本中用于从用户输入中获取值的命令。它的作用是定义变量并赋值为用户的输入。它允许脚本暂停执行,等待用户在命令行输入数据,然后将输入内容存储在一个变量中。
set /p 变量名=提示信息
  1. 特殊变量
    %cd%:这是一个特殊的环境变量,表示当前工作目录(current directory)。

4. 获取参数 %数字 %*

参照此篇博客
以下做摘录

  1. 获取哪几个变量
    在这里插入图片描述

  2. 获取变量中的哪一部分
    在这里插入图片描述
    这些路径修饰符(如 ~n, ~x, ~f 等)只能用于命令行参数(如 %1, %2 等),不能直接用于普通变量(如通过 set 命令定义的变量).
    理解: f对应full path n对应name x对应extension

@echo off
echo 0对应的变量 %0
echo 1对应的变量 %1
echo f修饰的变量 完整路径 %~f1
echo n修饰的变量 文件名 %~n1
echo x修饰的变量 扩展名 %~x1

结果
在这里插入图片描述

5. 退出 exit

exit 0   % 关闭命令行窗口,返回成功状态码 %
exit 1   % 关闭命令行窗口,返回错误状态码 %

参数/b可以保留命令行窗口, 只是停止当前批处理脚本

6. 复制 copy

复制的路径中如果可能带有特殊字符,加上双引号。如果复制后的文件,文件名不同,直接体现。 copy a.txt b.txt将文件a复制为文件b

copy "%outpath%%basename%_2_evac.fed" "%outpath%%basename%_3_evac.fed"

7.读取输出文件内容 type

type 1.txt

8. 帮助 命令xxx /?

copy /?

9.等待当前命令运行结束后,才执行下一条命令 call

call xxx命令

10. 修改字体编码 chcp

chcp 是 Change Code Page 的缩写,用于在命令行环境中更改当前的代码页(即字符编码)。通过 chcp 命令,用户可以设置控制台使用的字符编码,以便正确显示不同语言或字符集的文本。

例如,执行 chcp 65001可以将命令行的字符编码更改为 UTF-8,从而支持多语言字符的显示

11. 特殊变量

  1. errorlevel
    errorlevel 表示上一条命令是否发生错误,如果错误,其值>=1, 否则==0, 这个变量很特殊
    可以直接使用如下判断
if errorlevel 1 (
    echo 这会执行
)

表示if %errorlevel% >=1


三 结构

1. 顺序结构

较为简单,不再赘述

2. 分支结构

分支结构参照此篇
以下做一些关键摘录.

  1. 语法结构
    在这里插入图片描述
    在这里插入图片描述

理解: 括号挨着表达式,计算机搞不清楚括号后的内容是否属于表达式的一部分.
else if前边可以不加空格,因为计算机已经知道右括号 ) 是执行代码块的结尾了.

if condition (
    rem 执行代码块
) else if condition (
    rem 执行代码块
) else (
	rem 执行代码块
)

对比一下c语言

if(condition){
	//执行代码块
}
else if(condition){
	//执行代码块
}
else{
	//执行代码块
}
  1. 常见用法

判断路径文件是否存在

if exist %filepath% (
	echo 路径%filepath%存在
) else (
	echo 路径%filepath%不存在
)

判断变量是否定义, 注意此时变量不加%

set /p filepath=请输入:
if defined filepath (
	echo filepath存在
)

if not defined filepath (
	echo filepath不存在
)

判断上条指令是否执行成功.

call  C:\Users\Administrator\Desktop\printf.bat

if %errorlevel%  == 0 (
	echo 前条执行成功
) else (
	echo 前条执行失败
)

3. 循环结构

参考此篇博客
下文做简要摘录。

  1. 基本格式
    在这里插入图片描述
for %%a in (ele1 ele2 ele3) do (
	echo %%a
)
for %%a in (1,2,3) do (
	echo %%a
)
  1. 特殊用法
    输出当前文件夹下的文件,只有文件
for %%i in (./*) do (echo %%i)
  1. 指令参数
    /l 遍历数字序列
    在这里插入图片描述

欢迎交流指正ヾ(≧▽≦*)o, 之后继续补充

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

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

相关文章

集合框架16:HashMap的使用

视频链接:13.35 HashMap使用(1)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p35 1.创建Student类,添加无参构造…

UML之用例图详解

~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 零、什么是用例图 用例图(Use Case Diagram)是UML中一种重要的图表类型,它主要用于描述系统的功能性需求&am…

Java使用HttpClient5实现发送HTTP请求

Java 实现发送 HTTP 请求,系列文章: 《Java使用原生HttpURLConnection实现发送HTTP请求》 《Java使用HttpClient5实现发送HTTP请求》 《SpringBoot使用RestTemplate实现发送HTTP请求》 1、HttpClient5 的介绍 HttpClient5 是 Apache HttpComponents 项目…

文件处理新纪元:微信小程序的‘快递员’与‘整理师’

嗨,我是中二青年阿佑,今天阿佑将带领大家如何通过巧妙的文件处理功能,让用户体验从‘杂乱无章’到‘井井有条’的转变! 文章目录 微信小程序的文件处理文件上传:小程序的“快递服务”文件下载:小程序的“超…

植物大战僵尸杂交版游戏分享

植物大战僵尸杂交版游戏下载:夸克网盘分享 无捆绑之类的隐形消费,下载即玩

vue3 解决背景图与窗口留有间隙的问题

需要实现一个登录界面&#xff0c;login.vue的代码如下&#xff1a; <script> import { ref } from vue;export default {setup() {return {};}, }; </script><template><div id"login-container" class"login-container"><di…

Taro构建的H5页面路由切换返回上一页存在白屏页面过渡

目录 项目背景&#xff1a;Taro与Hybrid开发问题描述&#xff1a;白屏现象可能的原因包括&#xff1a; 解决方案解决后的效果图 其他优化方案可参考&#xff1a; 项目背景&#xff1a;Taro与Hybrid开发 项目使用Taro框架同时开发微信小程序和H5页面&#xff0c;其中H5页面被嵌…

Nodes 节点

Goto Tree List 树列表 Nodes 节点 Tree List 节点是组织成树状层次结构的数据行。 Add New Nodes 添加新节点 如果 Tree List 具有数据源&#xff0c;则会自动生成节点&#xff08;TreeListNode 类对象&#xff09;。要在未绑定模式下添加节点&#xff0c;请调用“树列表设…

【K8S系列】Kubernetes Pod节点Pending状态及解决方案详解【已解决】

在 Kubernetes 中&#xff0c;Pod 的状态为 Pending 表示 Pod 已被创建&#xff0c;但尚未被调度到节点上&#xff0c;或者已调度到节点上但容器尚未开始运行。这一状态常常是因为某些条件未满足&#xff0c;导致 Pod 无法正常启动。以下是对 Pending 状态的详细分析及解决方案…

自由学习记录(12)

综合实践 2D的Shape&#xff0c;Tilemap都要导包的&#xff0c;编辑器也要导包&#xff0c;。。和2d沾边的可能3d都要主动导包 应该综合的去运用&#xff0c;不见得Tilemap就很万能&#xff0c;如果要做什么顶方块的有交互反应的物体&#xff0c; 那直接拖Sprite会更方便一些…

APIJSON 为零代码提供了新的思路

APIJSON 核心概念 APIJSON 是一种用于构建 RESTful API 的 JSON 格式&#xff0c;它提供了一种标准化的方式来定义和处理 API 请求和响应。APIJSON 的设计目标是简化前端和后端之间的数据交互&#xff0c;减少开发工作量&#xff0c;提高开发效率。 在线解析 自动生成文档&am…

【SpringBoot】16 文件上传(Thymeleaf + MySQL)

Gitee仓库 https://gitee.com/Lin_DH/system 介绍 文件上传是指将本地的图片、视频、音频等文件上传到服务器&#xff0c;供其他用户浏览下载的过程&#xff0c;文件上传在日常项目中用的非常广泛。 实现代码 第一步&#xff1a;在配置文件新增如下配置 application.yml s…

docker-compose-lnmp-wordpress

使用 docker-compose 在 CentOS 7 上编写并部署 LNMP (Linux, Nginx, MySQL, PHP) 环境的 YAML 文章目录 部署步骤&#xff1a;1. 安装 Docker 和 Docker Compose1.1安装 Docker&#xff1a;1.2安装 Docker Compose&#xff1a; 2.创建目录结构3.编写docker-compose.yml4.ngin…

Java项目-基于springboot框架的财务管理系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

科研进展 | RSE:全波形高光谱激光雷达数据Rclonte系列处理算法一

《环境遥感》&#xff08;Remote Sensing of Environment&#xff0c;IF11.1&#xff09;近日发表一项来自中国科学院空天信息创新研究院王力、牛铮研究员团队的全波形高光谱激光雷达&#xff08;hyperspectral LiDAR&#xff0c;HSL&#xff09;数据处理算法研究&#xff0c;论…

计算机组成原理一句话

文章目录 计算机系统概述存储系统 计算机系统概述 指令和数据以同等地位存储在存储器中&#xff0c;形式上没有差别&#xff0c;但计算机应能区分他们。通过指令周期的不同阶段。 完整的计算机系统包括&#xff0c;1&#xff09;软件系统&#xff1a;程序、文档和数据&#xff…

DC系列靶机-DC6

一&#xff0c;环境的搭建 VM17 官网下载 kali 2023.4版 https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2023.4/ 靶场文件 https://download.vulnhub.com/dc/DC-6.zip 二&#xff0c;攻略 首先进行主机发现&#xff1b; 接下来进行端口扫描&#xff1b; 开放了2…

初识git · 远程操作

目录 前言&#xff1a; 理解分布式版本控制系统 远程仓库 仓库操作 克隆仓库 推送和抓取 特殊文件 取别名 标签管理 前言&#xff1a; 在基本操作&#xff0c;分支管理这几个部分&#xff0c;我们都会在本地仓库操作了&#xff0c;但是目前还没有办法将自己的代码远程…

uniapp 实现input聚焦时选中内容(已封装)兼容微信小程序

老规矩先来看看效果噻&#xff01; 从上面的录屏中我们可以看出&#xff0c;要实现input自由选中内容的功能是可以实现的&#xff0c;原理其实很简单。 直接运行即可 <template><view><!-- <input class"psd"type"digit" :value"in…

第二代 GPT-SoVITS V2:解锁语音克隆与合成的无限可能

在 AI 技术蓬勃发展的今天&#xff0c;第二代 GPT-SoVITS V2 如一颗璀璨的明星闪耀登场&#xff0c;为语音处理领域带来了前所未有的变革。它是一款集先进技术与强大功能于一身的声音克隆与语音合成工具&#xff0c;由 RVC 变声器创始人 “花儿不哭” 与 AI 音色转换技术 Sovit…