当前位置: 首页 > news >正文

<电子幽灵>开发笔记:BAT基础笔记(一)

BAT脚本基础笔记(一)

介绍

费曼学习法最重要的部分,即把知识教给一个完全不懂的孩子——或者小白。
为了更好的自我学习,也为了让第一次接触某个知识范畴的同学快速入门,我会把我的学习笔记整理成电子幽灵系列。
提示:作为低代码工具的笔记,这里会用特殊字体表示要用到的函数等等。请若要学习,请结合相关工具边用边学。


BAT基础笔记(一)

  • BAT脚本基础笔记(一)
    • 介绍
    • 简介
      • 在哪里编写BAT代码?
    • BAT基本语法
        • 1. 基本命令结构
        • 2. 注释
        • 3. 变量
          • 变量定义
          • 变量调用
          • 变量运算
            • 字符串
            • 字符串替换
            • 数学运算
        • 4. 常用基本命令--基本文件操作
        • 5. 打印、输入、输出命令:echo
        • 7. 条件语句
          • if 语句
          • 比较运算符
          • 三元运算符: `&&` 和 `||`
        • 8. 循环
          • for 循环
          • while 循环
        • 9. 脚本执行
  • 总结

本篇笔记通过对各种资料学习总结得到。

简介

BAT脚本是主要用于Windows操作系统中的一种批处理脚本。所谓"批处理",就是一次性处理一批指令。这些命令通常是可以在命令提示符(cmd)中手动输入的,但通过将它们编写成一个脚本文件,可以实现自动化操作,大大提高工作效率。BAT脚本文件的扩展名为 .bat,用户可以通过双击这个文件来运行其中的所有命令。

BAT脚本可以用来管理文件和文件夹、运行其他程序、网络配置等任务。它支持变量、条件判断、循环等功能,使得脚本编写更加灵活和强大。然而,BAT脚本也有其局限性,比如错误处理能力较差,编写复杂的脚本时可能会比较困难。

需要注意的是,虽然BAT脚本在自动化任务方面很有用,但由于其执行的命令可能具有很高的权限,因此编写和使用BAT脚本时需要谨慎,避免执行到恶意代码或命令,造成不必要的损失。

在哪里编写BAT代码?

编写BAT脚本主要是在Windows操作系统中进行的。编写BAT脚本有很多种方法,这里不妨列出一些:

  1. 记事本 :Windows自带的记事本可以用来编写和保存BAT脚本文件。编写完成后,只需将文件保存为 .bat格式即可。这种方式简单直接,很多新手在第一次接触BAT脚本时就是使用这种方式编写简单的BAT脚本代码。

    但是简单直接有时意味着简陋。每次编写,都需要转换文件格式,并(有时会)处理一些繁琐的报错。而且你无法得知自己写出的脚本是否存在某些问题,会带来不必要的风险。大批量的脚本编写不应当直接使用记事本。

  2. Notepad++ :这是一个更强大的文本编辑器,支持多种编程语言的语法高亮和代码折叠等功能,可以更方便地编写BAT脚本。Notepad++是一个免费的开源软件,可以在其官方网站下载。

  3. Visual Studio Code :VSCode里面当然有支持BAT编写的插件啦。在VSCode里面,就可以无视 .bat格式,直接撰写脚本。bat-snippets插件可以帮助你快速插入常用的BAT代码片段,Bash Debug插件可以帮助你调试BAT脚本。其他的AI代码补全也可以帮你写作。

  4. PowerShell ISE :如果你打算编写更复杂的脚本,PowerShell可能是一个更合适的选择。PowerShell ISE(集成脚本环境)是Windows自带的脚本编辑器,专门为PowerShell脚本设计,支持语法高亮、调试等功能。

  5. Bat To Exe Converter :这个工具可以帮助你将BAT脚本转换为可执行文件(.exe)。它是一个免费的软件,可以将BAT脚本转换为标准的可执行文件,并且提供了一些附加选项,如隐藏源代码、设置图标等。

我使用的是VSCode编写。一是平时写代码就用VSCode,二是VSCode插件很多,几乎一体化,也可以帮助我写BAT脚本。

BAT基本语法

按编译和解释分类,现代的编程语言可以分为编译性语言和解释性语言。编译型语言需要编译器翻译成二进制机器码然后才能运行,而解释型语言由解释器逐行解释执行,不需要预编译。BAT就是一种解释型脚本语言,这一点它与Python十分相似。

1. 基本命令结构

.bat 文件中的命令结构与直接在命令提示符中输入的命令类似:

command [options] [arguments]
  • command:要执行的命令。
  • options:可选参数,通常以 / 开头。
  • arguments:传递给命令的参数。
2. 注释

BAT只支持逐行注释。共有两种 ::rem

:: 这行代码被注释掉了,它不会被终端回显
rem 这行代码也被注释掉了,但是如果打开了回显,他会显示在命令行终端上
3. 变量
变量定义

变量定义时不需要声明类型,直接赋值即可:

set MY_VAR=Hello, World!

注意事项: 在给变量赋值时,变量名和等号间绝对不可以有空格,这样会导致赋值失败;因此,变量名里也绝不可以有 =

变量调用

使用 % 符号引用变量:

echo %MY_VAR%
echo %PATH%::是的,环境变量也可以使用相同的引用方式
变量运算
字符串
  1. 字符串拼接

当给一个变量赋值为字符串时,我们并不需要把字符串两侧都加上引号。

set GREETING=Hello
set NAME=World
echo %GREETING%, %NAME%!
set Unint=%GREETING% %NAME%
echo %Unint%

在上面的例子当中,两次echo输出的结果是相同的。

字符串替换
  1. set命令替换

用set命令进行字符串替换的格式如下:%变量名:待替换字符=替换后字符%

如果替换后字符为空(即等号后直接跟 %),则可以删除子字符串。

如果待替换字符有多个,会全部替换。

例子:

set var=Hello, World!
set var=%var:World=Universe%
echo %var%

输出:

Hello, Universe!
数学运算

批处理脚本本身不直接支持复杂的数学运算(如浮点数运算),但可以通过一些方法进行基本的整数运算。

  1. 使用 set /a 进行算术运算

    set a=123
    set b=456
    set c=%a%+%b%
    echo %c%
    set /a c=a+b
    echo %c%
    

    输出:

    123+456::变量默认以字符串的形式储存,当没有额外参数时,变量之间的运算默认采取字符串方式运算。
    579
    
  2. 支持的运算符

    • +:加法
    • -:减法
    • *:乘法
    • /:除法(整数除法)
    • %:取模(余数)
    • &:按位与
    • |:按位或
    • ^:按位异或
    • !:按位非
    • <<:左移
    • >>:右移
  3. 示例

以下是一些使用 set /a 进行整数运算的示例:

   set /a a=123+456set /a b=123-456set /a c=123*456set /a d=123/45set /a e=123%45echo %a%echo %b%echo %c%echo %d%echo %e%

输出:

   5793356088233

注意事项:

  • set /a 只能进行整数运算。
  • 浮点数运算在批处理脚本中不直接支持,但可以通过调用外部工具(如 calc.exepowershell)来实现。
  • 不支持复杂的数学表达式(如括号运算),但可以通过多次 set /a 命令来实现类似的效果。

所以,bat本身支持的运算不多,但是可以使用外部工具进行浮点数运算。

例如,可以通过调用 PowerShell 来进行浮点数运算:

@echo off
set a=123.45
set b=45.67
powershell -Command "$a = %a%; $b = %b%; $c = $a + $b; Write-Output $c"

输出:

169.12
4. 常用基本命令–基本文件操作
dir          # 列出目录内容
cd           # 更改目录
mkdir        # 创建目录
rmdir        # 删除目录
del          # 删除文件
copy         # 复制文件或目录
move         # 移动或重命名文件或目录
type         # 显示文件内容

以下是这些命令的用法及其执行后的效果:

  1. dir

    • 用法:dir
    • 执行后:列出当前目录下的所有文件和子目录的名称、大小、修改日期等信息。
  2. cd

  • 用法:cd 路径\到\目录
  • 执行后:更改当前工作目录到指定的路径。例如,如果当前目录是 C:\Users\你的用户名,输入 cd C:\Program Files后,当前目录将变为 C:\Program Files
  1. mkdir
  • 用法:mkdir 新目录名
  • 执行后:在当前目录下创建一个名为“新目录名”的新目录。
  1. rmdir
  • 用法:rmdir 空目录名
  • 执行后:删除当前目录下的一个空目录。如果目录非空,命令会失败。
  1. del
  • 用法:del 文件名.txt
  • 执行后:删除当前目录下的指定文件。如果文件不存在,会报错。
  1. copy
  • 用法:copy 源文件.txt 目标路径\
  • 执行后:将“源文件.txt”复制到“目标路径”下,保留原文件。
  1. move
  • 用法:move 旧文件名.txt 新路径\新文件名.txt
  • 执行后:将“旧文件名.txt”移动到“新路径”下,并可以同时重命名为“新文件名.txt”。如果新路径不存在,命令会失败。
  1. type
  • 用法:type 文件名.txt
  • 执行后:在命令提示符窗口显示指定文本文件的内容。
5. 打印、输入、输出命令:echo
  1. 打印文本

    • 示例:
    • echo 你好,世界!
    • 执行后:在命令提示符窗口中输出“你好,世界!”。
  2. 显示变量的值

    • 示例:set 变量名=值
    • 示例:echo %变量名%
    • 执行后:首先设置一个名为“变量名”的变量,其值为“值”。然后,echo %变量名% 命令会输出该变量的值。
  3. 输入文件

    • 示例:echo 这是文件内容 > 文件名.txt
    • 执行后:将“这是文件内容”写入“文件名.txt”文件中。如果文件已经存在,其内容将被覆盖。
    • 示例:echo 这是追加的内容 >> 文件名.txt
    • 执行后:将“这是追加的内容”追加到“文件名.txt”文件的末尾,不会覆盖原有内容。
7. 条件语句
if 语句
if condition (commands
)

例如:

if "%MY_VAR%"=="Hello, World!" (echo 变量匹配
)
比较运算符
  • ==:等于(字符串比较)
  • !=:不等于(字符串比较)
  • EQU:等于(整数比较)
  • NEQ:不等于(整数比较)
  • LSS:小于(整数比较)
  • LEQ:小于等于(整数比较)
  • GTR:大于(整数比较)
  • GEQ:大于等于(整数比较)
  • EXIST:文件存在
  • NOT EXIST:文件不存在
三元运算符: &&||
  • &&:前一个命令成功时执行后一个命令。
  • ||:前一个命令失败时执行后一个命令。
dir file.txt && echo 文件存在 || echo 文件不存在
8. 循环
for 循环
for %%var in (list) do (::这里的%%var表示变量名,这个用法只能且必须用在循环变量中。commands
)

例如:

for %%i in (1 2 3 4 5) do (echo 循环变量 i 是 %%i
)
while 循环

.bat 文件本身不直接支持 while 循环,但可以通过 gotoif 语句模拟:

@echo off
set count=1
:loop
if %count% leq 5 (echo 计数器是 %count%set /a count+=1goto loop
)
9. 脚本执行

编写完 .bat 文件后,可以直接在命令提示符中运行:

script.bat
script::bat文件的特权:当运行它的时候,不需要加上它的后缀。

总结

BAT脚本语言是以各种bash命令为主导的,和其他编程语言有着类似的功能,如支持条件分支、循环遍历、变量与运算等等;也有他自己的独特之处,即主要组织各种文件及其内容。下一篇笔记中将会涉及更多有关组织多个文件的BAT脚本用法。


如果真有所谓运势,那大概是吸收天地灵气得到的一些Buff?

相关文章:

<电子幽灵>开发笔记:BAT基础笔记(一)

BAT脚本基础笔记(一) 介绍 费曼学习法最重要的部分&#xff0c;即把知识教给一个完全不懂的孩子——或者小白。 为了更好的自我学习&#xff0c;也为了让第一次接触某个知识范畴的同学快速入门&#xff0c;我会把我的学习笔记整理成电子幽灵系列。 提示&#xff1a;作为低代码…...

Leetcode::3427.变长子数组求和

给你一个长度为 n 的整数数组 nums 。对于 每个 下标 i&#xff08;0 < i < n&#xff09;&#xff0c;定义对应的子数组 nums[start ... i]&#xff08;start max(0, i - nums[i])&#xff09;。 返回为数组中每个下标定义的子数组中所有元素的总和。 子数组 是数组中…...

通过以太网加载linux内核、设备树、根文件系统方法(以stm32MP135为例)

0 硬件平台 正点原子stm32MP135开发板 1 通过以太网加载linux内核、设备树、根文件系统方法&#xff08;以stm32MP135为例&#xff09; 在产品正式发布前&#xff0c;为了调试方便&#xff0c;我们可以使用以太网加载linux内核、设备树、根文件系统以加快调试速度。本文以stm3…...

mac配置stable diffusion以及模型出图优化

1. 基础stable diffusion webui安装 使用的工程是stable-diffusion-webui&#xff0c;直接clone下来即可。 然后创建一个conda环境&#xff0c;python为3.9 激活conda环境后&#xff0c;执行./webui.sh即可。脚本会自动安装必要的包&#xff0c;然后启动网页。 默认有一个sd…...

LeetCode热题100(子串篇)

LeetCode热题100 说是子串&#xff0c;其实是子区间~ 560. 和为 K 的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 思路 思路&#xff1a; 和为k的子数组&#xff0c;看到…...

从密码学原理与应用新方向到移动身份认证与实践

相关学习资料放下面啦&#xff01; 记得关注❤️&#xff5e;后续分享更多资料 通过百度网盘分享的文件&#xff1a;从密码学原理与应... 链接https://pan.baidu.com/s/1mHpHkvPuf8DUwReQkoYQlw?pwdGza7 提取码&#xff1a;Gza7 复制这段内容打开「百度网盘APP 即可获取」 记…...

【Flink系列】9. Flink容错机制

9. 容错机制 在Flink中&#xff0c;有一套完整的容错机制来保证故障后的恢复&#xff0c;其中最重要的就是检查点。 9.1 检查点&#xff08;Checkpoint&#xff09; 9.1.1 检查点的保存 1&#xff09;周期性的触发保存 “随时存档”确实恢复起来方便&#xff0c;可是需要我…...

【物联网】ARM核介绍

文章目录 一、芯片产业链1. CPU核(1)ARM(2)MIPS(3)PowerPc(4)Intel(5)RISC-V 2. SOC芯片(1)主流厂家(2)产品解决方案 3. 产品 二、ARM核发展1. 不同架构的特点分析(1)VFP(2)Jazelle(3)Thumb(4)TrustZone(5)SIMD(6)NEON 三、ARM核(ARMv7)工作模式1. 权限级别(privilege level)2.…...

spring的事物管理的认知

事物 它是一个原子操作要么全部不执行&#xff0c;要么全部执行成功&#xff0c;如果有一个失败也会撤销&#xff0c;它保证用户每一次的操作都是可靠的&#xff0c;即使时出现了错误也不至于破坏数据的完整性 它包含了四种特性&#xff1a; 原子性&#xff1a;保证事物要么…...

QT跨平台应用程序开发框架(3)—— 信号和槽

目录 一&#xff0c;基本概念 二&#xff0c;connect函数使用 2.1 connect 2.2 Qt内置信号和槽 2.3 一些细节 三&#xff0c;自定义信号和槽 3.1 自定义槽函数 3.2 自定义信号 3.3 带参数的信号槽 四&#xff0c;信号和槽的意义 五&#xff0c;信号和槽断开连接 六&…...

技术面试中的软素质技巧性答复集锦

1、请你自我介绍一下你自己&#xff1f; 回答提示&#xff1a;一般人回答这个问题过于平常&#xff0c;只说姓名、年龄、爱好、工作经验&#xff0c;这些在简历上都有。其实&#xff0c;企业最希望知道的是求职者能否胜任工作&#xff0c;包括&#xff1a;最强的技能、最深入研…...

JavaWeb项目——如何处理管理员登录和退出——笔记

一、知识点 1、WebServlet注解的使用 WebServlet注解是Servlet 3.0引入的一个特性&#xff0c;它允许开发者在Servlet类上使用注解来声明Servlet的一些属性&#xff0c;从而避免在web.xml文件中进行配置。这种方式简化了Servlet的配置过程&#xff0c;使得代码更加简洁&#…...

函数递归的介绍

1.递归的定义 在C语言中&#xff0c;递归就是函数自己调用自己 上面的代码就是 main 函数在函数主体内 自己调用自己 但是&#xff0c;上面的代码存在问题&#xff1a;main 函数反复地 自己调用自己 &#xff0c;不受限制&#xff0c;停不下来。 最终形成死递归&#xff0c;…...

昇腾环境ppstreuct部署问题记录

测试代码 我是在华为昇腾910B3上测试的PPStructure。 import os import cv2 from PIL import Image #from paddleocr import PPStructure,draw_structure_result,save_structure_res from paddleocr_asyncio import PPStructuretable_engine PPStructure(show_logTrue, imag…...

《知识图谱:鸿蒙NEXT中人工智能的智慧基石》

在鸿蒙NEXT系统的人工智能应用中&#xff0c;知识图谱技术犹如一座智慧基石&#xff0c;为系统的智能化提供了强大的知识支撑&#xff0c;开启了更智能、更高效、更个性化的交互新时代。 提升语义理解能力 知识图谱以其结构化的知识表示方式&#xff0c;将各种实体和它们之间…...

Springboot项目Jackson支持多种接收多种时间格式

前言 在springboot项目中经常会使用Jackson框架,当前端给后端传输时间类型时,我们一般需要先配置好时间格式,否则后端无法接收。以下是一些配置方法 统一配置 spring:jackson:time-zone: GMT+8date-format: yyyy-MM-dd HH:mm:ss这种配置就是要求前端统一传输的格式是yyyy-…...

go语言zero框架通过chromedp实现网页在线截图的设计与功能实现

在 GoZero 框架中实现网页在线截图的功能&#xff0c;可以通过集成 chromedp 库来控制 Chrome 浏览器进行截图。chromedp 是一个基于 Chrome DevTools 协议的 Go 包&#xff0c;可以用来在 Go 程序中模拟浏览器操作&#xff0c;如页面截图、DOM 操作、表单提交等。 下面是一个…...

基于深度学习的视觉检测小项目(十四) 用SQLite数据库进行用户管理

在开始做用户管理之前&#xff0c;先要了解一下SQLite数据库的基础知识&#xff1a;https://blog.csdn.net/xulibo5828/category_12785993.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12785993&sharereferPC&sharesourcexulibo5828&sharefrom…...

【2024年华为OD机试】 (B卷,100分)- 敏感字段加密(Java JS PythonC/C++)

一、问题描述 题目描述 给定一个由多个命令字组成的命令字符串: 字符串长度小于等于 127 字节,只包含大小写字母、数字、下划线和偶数个双引号;命令字之间以一个或多个下划线 _ 进行分割;可以通过两个双引号 "" 来标识包含下划线 _ 的命令字或空命令字(仅包含…...

图像去雾数据集的下载和预处理操作

前言 目前&#xff0c;因为要做对比实验&#xff0c;收集了一下去雾数据集&#xff0c;并且建立了一个数据集的预处理工程。 这是以前我写的一个小仓库&#xff0c;我决定还是把它用起来&#xff0c;下面将展示下载的路径和数据处理的方法。 下面的代码均可以在此找到。Auo…...

Vue3数据响应式原理

什么是数据响应式 当数据变化时&#xff0c;引用数据的函数&#xff08;副作用函数&#xff09;自动重新执行。 即数据触发了函数的响应&#xff0c;如&#xff1a;视图渲染中使用了某数据&#xff0c;数据改变后&#xff0c;视图跟着自动更新。 触发者&#xff1a;数据 响应者…...

5.最长回文子串--力扣

给你一个字符串 s&#xff0c;找到 s 中最长的 回文子串。 示例 1&#xff1a; 输入&#xff1a;s “babad” 输出&#xff1a;“bab” 解释&#xff1a;“aba” 同样是符合题意的答案。 示例 2&#xff1a; 输入&#xff1a;s “cbbd” 输出&#xff1a;“bb” 原题如上&…...

ChatGPT大模型极简应用开发-CH1-初识 GPT-4 和 ChatGPT

文章目录 1.1 LLM 概述1.1.1 语言模型和NLP基础1.1.2 Transformer及在LLM中的作用1.1.3 解密 GPT 模型的标记化和预测步骤 1.2 GPT 模型简史&#xff1a;从 GPT-1 到 GPT-41.2.1 GPT11.2.2 GPT21.2.3 GPT-31.2.4 从 GPT-3 到 InstructGPT1.2.5 GPT-3.5、Codex 和 ChatGPT1.2.6 …...

python学opencv|读取图像(三十九 )阈值处理Otsu方法

【1】引言 前序学习了5种阈值处理方法&#xff0c;包括(反)阈值处理、(反)零值处理和截断处理&#xff0c;还学习了一种自适应处理方法&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;三十三&#xff09;阈值处理-灰度图像-CSDN博客 python学o…...

统信V20 1070e X86系统编译安装mysql-5.7.44版本以及主从构建

设备信息 操作系统版本架构CPU内存备注统信UOS V20 1070eX864C8G此配置仅做编译安装验证&#xff0c;持续运行或数据量增长大请自行评估资源配置。统信UOS V20 1070eX864C8G 资源包 该包包含mysql-5.7.44源码包、boost资源包、统信编译mysql-5.7.44安装包 通过网盘分享的文件…...

麒麟LINUX V10SP3 2401安装ORACLE 12.2.1 runInstaller直接报UNZIP格式不对

好久没有安装ORACLE了&#xff0c;一般都是RHEL上安装得比较多&#xff0c;这不&#xff0c;现在大家都是选择国产操作系统来安装数据库了&#xff0c;以前在龙蜥&#xff0c;欧拉&#xff0c;麒麟上也安装过&#xff0c;都没有问题&#xff0c;想来在麒麟LINUX v10sp3 2401上面…...

10 为什么系统需要引入分布式、微服务架构

java技术的发展 在java开始流行起来之后&#xff0c;主要服务于企业家应用&#xff0c;例如ERP,CRM等等&#xff0c;这些项目是为企业内部员工使用&#xff0c;我们的思维是怎么用设计模式&#xff0c;如何封装代码。让开发人员关注到业务上去&#xff0c;系统也就那么几十几百…...

【Web】2025西湖论剑·中国杭州网络安全安全技能大赛题解(全)

目录 Rank-l Rank-U sqli or not Rank-l username存在报错回显&#xff0c;发现可以打SSTI 本地起一个服务&#xff0c;折半查找fuzz黑名单&#xff0c;不断扔给fenjing去迭代改payload from flask import Flask, request, render_template_stringapp Flask(__name__)app…...

openharmony应用开发快速入门

开发准备 本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用&#xff08;如下图所示&#xff09;&#xff0c;快速了解工程目录的主要文件&#xff0c;熟悉OpenHarmony应用开发流程。 在开始之前&#xff0c;您需要了解有关OpenHarmon…...

解决npm install安装出现packages are looking for funding run `npm fund` for details问题

当我们运行npm install时&#xff0c;可能会收到类似以下的提示信息&#xff1a;“x packages are looking for funding.” 这并不是错误提示&#xff0c;也不会影响项目的正常运行。其实实在提醒有一些软件包正在寻求资金支持。 根据提示输入npm fund可以查看详细的信息&#…...

python助力WRF自动化运行

对大部分人而言&#xff0c;特别是新用户&#xff0c;WRF模式的安装繁琐且不必要&#xff0c;可以作为后续进阶掌握的技能&#xff0c;本学习跳过繁琐的安装步骤&#xff0c;直接聚焦模式的运行部分&#xff0c;通过短平快的教学&#xff0c;快速掌握模式运行。进一步将python语…...

Go-知识 版本演进

Go-知识 版本演进 Go release notesr56(2011/03/16)r57(2011/05/03)Gofix 工具语言包工具小修订 r58(2011/06/29)语言包工具小修订 r59(2011/08/01)语言包工具 r60(2011/09/07)语言包工具 [go1 2012-03-28](https://golang.google.cn/doc/devel/release#go1)[go1.1 2013-05-13]…...

企业级NoSQL数据库Redis

1.浏览器缓存过期机制 1.1 最后修改时间 last-modified 浏览器缓存机制是优化网页加载速度和减少服务器负载的重要手段。以下是关于浏览器缓存过期机制、Last-Modified 和 ETag 的详细讲解&#xff1a; 一、Last-Modified 头部 定义&#xff1a;Last-Modified 表示服务器上资源…...

Android渲染Latex公式的开源框架比较

对比主流框架&#xff0c;介绍如下几款 1、AndroidMath 官网&#xff1a;https://github.com/gregcockroft/AndroidMath/tree/master 基于android原生view方式渲染 优点&#xff1a;速度快&#xff0c;开源协议 MIT license 缺点&#xff1a;不支持文字公式混合渲染 2、Ma…...

ARM学习(42)CortexM3/M4 MPU配置

笔者之前学习过CortexR5的MPU配置,现在学习一下CortexM3/M4 MPU配置 1、背景介绍 笔者在工作中遇到NXP MPU在访问异常地址时,就会出现总线挂死,所以需要MPU抓住异常,就需要配置MPU。具体背景情况可以参考ARM学习(41)NXP MCU总线挂死,CPU could not be halted以及无法连…...

Sam Altman亲自确认:o3-mini即将上线!GPT和o系列模型合并!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…...

数据结构-队列

目录 前言一、队列及其抽象数据类型1.1 队列的基本概念1.2 队列的抽象数据类型 二、队列的实现2.1 顺序表示2.1.1 结构定义2.1.2 基本操作的实现 2.2 链式表示2.2.1 结构定义2.2.2 基本操作的实现 总结 前言 本篇文章介绍队列的基础知识&#xff0c;包括队列的抽象数据类型以及…...

Go Map 源码分析(一)

Go语言中的map是通过哈希表实现的&#xff0c;其底层结构和实现机制如下&#xff1a; 一、hash 结构 hmap结构体&#xff1a;是map的头部结构&#xff0c;主要字段及含义如下&#xff1a; count&#xff1a;表示当前哈希表中的元素数量&#xff0c;与len()函数相对应。flags…...

天机学堂5-XxlJobRedis

文章目录 梳理前面的实现&#xff1a;Feign点赞改进 day07-积分系统bitmap相关命令签到增加签到记录计算本月已连续签到的天数查询签到记录 积分表设计签到-->发送RabbitMQ消息&#xff0c;保存积分对应的消费者&#xff1a;**消费消息 用于保存积分**增加积分查询个人今日积…...

SpringBoot整合junit

SpringBoot 整合 junit 特别简单&#xff0c;分为以下三步完成: 1在测试类上添加 SpringBootTest 注解2使用 Autowired 注入要测试的资源3定义测试方法进行测试 1.实验准备&#xff1a; 创建一个名为 springboot_junit_test 的 SpringBoot 工程&#xff0c;工程目录结构如下…...

Jenkins-pipeline Jenkinsfile说明

一. 简介&#xff1a; Jenkinsfile 是一个文本文件&#xff0c;通常保存在项目的源代码仓库中&#xff0c;用于定义 Jenkins Pipeline 的行为。使用 Jenkinsfile 可以使 CI/CD 流程版本化&#xff0c;并且易于共享和审核。 二. 关于jenkinsfile&#xff1a; jenkins的pipeline…...

SpringMVC 实战指南:打造高效 Web 应用的秘籍

第一章&#xff1a;三层架构和MVC 三层架构&#xff1a; 开发服务器端&#xff0c;一般基于两种形式&#xff0c;一种 C/S 架构程序&#xff0c;一种 B/S 架构程序使用 Java 语言基本上都是开发 B/S 架构的程序&#xff0c;B/S 架构又分成了三层架构三层架构&#xff1a; 表现…...

结合帧级边界检测和深度伪造检测,定位部分伪造音频攻击中的篡改区域

Integrating frame-level boundary detection and deepfake detection for locating manipulated regions in partially spoofed audio forgery 摘要&#xff1a; 部分伪造音频是一种深度伪造的变体&#xff0c;它通过引入伪造或外部来源的善意音频片段来操纵音频语句&#xf…...

人工智能之深度学习_[2]-PyTorch入门

文章目录 PyTorch1.PyTorch简介1.1 什么是PyTorch1.2 PyTorch特点1.3 PyTorch发展历史 2 张量创建2.1 什么是张量2.2 基本创建方式2.3 线性和随机张量2.4 0、1、指定值张量2.5 指定元素类型张量 3 张量类型转换3.1 张量转换为NumPy数组3.2 NumPy数组转换为张量3.3 提取标量张量…...

vue2与vue3的区别

目录 1. 性能 2. 组合式 API 3. 生命周期钩子 4. 片段&#xff08;Fragments&#xff09; 5. 递归组件 6. 自定义渲染器 7. 全局 API 8. 组件内部的 this 9. 模板语法 10. 兼容性 总结 Vue 2 和 Vue 3 是 Vue.js 框架的两个主要版本&#xff0c;它们在多个方面有所不…...

八股学习 Mysql

八股学习 Mysql 常见面试问题优化其他 定位慢查询方案一&#xff1a;开源工具方案二&#xff1a;MySQL自带慢日志 SQL执行计划示例场景名词解释 索引概念底层数据结构聚簇索引、二级索引&#xff08;非聚簇索引&#xff09;覆盖索引覆盖索引应用场景创建原则索引失效 SQL优化表…...

主从复制

简述mysql 主从复制原理及其工作过程&#xff0c;配置一主两从并验证。 主从原理&#xff1a;MySQL 主从同步是一种数据库复制技术&#xff0c;它通过将主服务器上的数据更改复制到一个或多个从服务器&#xff0c;实现数据的自动同步。 主从同步的核心原理是将主服务器上的二…...

服务器数据恢复—Zfs文件系统数据恢复案例

服务器数据恢复环境&故障&#xff1a; 一台zfs文件系统的服务器&#xff0c;管理员误操作删除了服务器上的数据。 服务器数据恢复过程&#xff1a; 1、将故障服务器中所有硬盘做好标记后取出&#xff0c;硬件工程师检测后没有发现有硬盘存在硬件故障。以只读方式将所有硬盘…...

Linux安装docker,安装配置xrdp远程桌面

Linux安装docker&#xff0c;安装配置xrdp远程桌面。 1、卸载旧版本docker 卸载旧版本docker命令 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine现在就是没有旧版本的d…...

Windows11电脑总是一闪一闪的,黑一下亮一些怎么解决

Windows11电脑总是一闪一闪的&#xff0c;黑一下亮一些怎么解决 1. 打开设备管理器2. 点击显示适配器3. 更新下方两个选项的驱动3.1 更新驱动Inter(R) UHD Graphixs3.2 更新驱动NVIDIA GeForce RTX 4060 Laptop GPU 4. 其他文章快来试试吧&#x1f970; 1. 打开设备管理器 在电…...