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

bat脚本、dos命令

bat脚本

bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上。这个文件的每一行都是一条DOS命令

在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe来运行该文件。

bat入门案例

cmd.exe

在windows环境下,命令行程序为cmd.exe。打开方式。快捷键[ctrl+r]——》键入cmd

接着,随便输入“www”回车,如果提示 “.......不是内部或外部命令,也不是可运行的程序或批处理文件。”

 这是因为在环境变量Path里面没有添加此程序的执行文件,我们只有把程序的bin目录添加到Path变量里面就可以了

例如:右键“我的电脑-属性-高级-环境变量-path,

然后在其变量值后面添加“;程序安装目录/bin”(注:在添加目录前必须添加“;”号,而且此分号必须是英文格式的)。


注释、echo和pause

rem 注释符,也可以用两个冒号代替(::)

:: 注释内容

echo 后加内容即输出该内容

会暂停批处理的执行并在屏幕上显示Press any key to continue…的提示,等待用户按任意键后继续

创建文件my.bat ,内容如下

:: 输出hello world
echo "hello world!"
pause

不加pause就会:双击运行批处理文件(xxx.bat),闪一下就消失

是因为批处理运bat行完成的时间很快,需要在运行完成后给添加暂停的命令

效果

@echo off(关闭所有回显功能)

my.bat ,内容改变,在最开始加上@echo off,

双击执行该bat文件,效果如下。就没有那些乱七八糟的 盘符路径命令本身呀。。。

提示:pause 改为 pause>nul

可以不显示“请按任意键继续. . .”这些字,nul相当于空文件,把这些文字隐去了。


窗口color与titile

  • title:设置控制台bat的标题
  • color:设置bat显示的背景和前景色

试着改动一下my.bat

color 02 0代表背景色,a代表字体颜色

@echo off
:: 设置窗口标题和颜色
title "bat批处理学习"
color 0a
echo "hello world!"
pause

双击执行该bat文件,效果如下

如果中文乱码,那么把bat文件的编辑改为ANSI格式


常用系统变量

%CD%  获取当前目录[盘符 + 路径]  
%PATH%  获取命令搜索路径
%DATE%  获取当前日期。
%TIME%  获得系统的当前时间
%RANDOM% 获取 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% 获取上一命令执行结果码

举例,在cmd窗口中输入 echo %CD%

系统变量在bat文件中使用,如:打印当前目录和系统临时文件夹目录。

修改bat文件如下:

@echo off
:: 设置窗口标题和颜色
title "bat批处理学习"
color 0a
echo "当前目录:"%CD%
echo "系统临时文件夹目录:"%TEMP%
pause

--------------------

假如你和我一样,也是乱码成这样。。。

 那么把bat文件的编辑改为ANSI格式就好了


set命令

set变量:变量设置值

最普通的set命令

@echo off
title "bat批处理学习"
color 0a
:: set命令测试
set name=小羽毛
:: 输出变量name的值
echo %name%
for %%i in (*.bat) do echo %%i
pause>nul

双击bat文件,执行结果 

set /p命令 ,让用户自己输入变量值

@echo off
title "bat批处理学习"
color 0a
:: set命令测试
set /p num=请输入一个数字:
echo 你输入的是:%num%
pause>nul

双击bat文件,会等待输入变量

 输入姓名之后,回车


bat基础运算

算术运算

关系运算

逻辑运算

&& 短路运算

||

bat重定向运算

Handle句柄

  • 句柄是Windows程序中的概念,本质是一个4字节无符号整数值,用来标示不同实例。
  • 句柄是系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。

在进程的地址空间中设一张表,表里头专门保存一些编号和由这个编号对应一个地址,而由那个地址去引用实际的对象,这个编号跟那个地址在数值上没有任何规律性的联系,纯粹是个映射而已。

在Windows系统中,这个编号就叫做"句柄"。


重定向运算>和>>和<

重定向:负责将指定命令或语句所产生的输入输出请求由缺省的“控制台”转交给其它的“设备”来完成,它的启动标志是“重定向符号”(包括“>,>>,<”三个)出现在句中。

>

将命令输出写入到文件或设备(例如打印机)中,而不是写在命令提示符窗口中。

<

从文件中而不是从键盘中读入命令输入。

>>

将命令输出追加到文件末尾而不删除文件中的信息。

dir>dirlist.txt

如果 dirlist.txt 不存在,cmd.exe 将创建该文件。如果 cirlist.txt 存在,cmd.exe 将使用 dir命令的输出替换文件中的信息。

@echo off
:: if-else结构学习
title "bat批处理学习"
color 0a
:: 设置变量v
dir>dirlist.txt
type dirlist.txt
pause

使用type是查看文件内容的 


管道运算|

| 从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。


bat流程控制

批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。

goto 命令 

流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。

goto [lable]  跳转到要执行的标签,在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX跳转到标号:XXX处,然后执行标号后的命令

注意:

  • 标签名必须是常量,不能是变量
  • 标签必须单独一行,并且以冒号打头。

双击bat文件,结果如下:


if 命令

1.用“==” 判断字符串相等。

@echo off
title "bat批处理学习"
color 0a
set name=李四
::%name%是否等于"李四"
if "%name%"=="李四" (echo 你是李四) else echo 你不是李四
pause>nul

2、判断数值相等。

@echo off
title "bat批处理学习"
color 0a
set num1=15
set num2=18
:: 比较俩个数大于、等于、小于
if %num1% gtr %num2% echo %num1%大于%num2%
if %num1% EQU %num2% echo %num1%等于%num2%
if %num1% LSS %num2% echo %num1%小于%num2%
pause>nul

注意:比较运算符分为以下几种:

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

3、结合errorlevel使用

环境变量%ERRORLEVEL%包含上次执行的程序或脚本的返回码。会在执行成功时返回零,或者在执行失败时返回非零

@echo off
title "bat批处理学习"
color 0a
net user
if %ERRORLEVEL% EQU 0 echo net user 命令执行成功
pause>nul


for 命令入门使用

在批处理文件中:for %%i in (command1) do command2

for语句依次提取command1中的每一个元素,把它的值赋予形式变量i,带到do后的command2中参与命令的执行;

for语句的基本要素:

  1. for、in和do是for语句的关键字;
  2. %%i是for语句中对形式变量的引用;%%I和%%i会被认为不是同一个变量
  3. in之后,do之前的括号不能省略;
  4. command1表示字符串或变量,command2表示字符串、变量或命令语句;

for循环,后面的多个元素逗号分割(默认以空格,;三种符号分隔开)

@echo off
title "bat批处理学习"
color 0a
:: for命令测试
for %%i in (www,baidu,com) do echo %%i
pause>nul

执行结果

*.*,显示当前目录下所有的文件名 

@echo off
title "bat批处理学习"
color 0a
:: for命令测试
echo 显示当前目录下所有的文件名
for %%i in (*.*) do echo %%i
pause>nul

双击bat文件,执行结果

*.bat,显示当前目录下以.bat结尾的文件

@echo off
title "bat批处理学习"
color 0a
:: for命令测试
echo 显示当前目录下以.bat结尾的文件
for %%i in (*.bat) do echo %%i
pause>nul

双击bat文件,执行结果


for 命令参数扩展


start命令

启动单独的“命令提示符”窗口来运行指定程序或命令。

用法:可以打开盘符、文件、文件夹、网址、程序...

start打开盘符

@echo off
title "bat批处理学习"
color 0a
:: set命令测试
start e:
pause>nul

打开时,可以指定最大化、最小化

------------------------

start打开文件夹

:: 最小化方式打开文件夹
start /min e:\PR

最小化,就是可以在任务栏找到啦

------------------------

start打开文件

:: 打开文件
start c:\aow_drv.log

---------------------

start 打开网址

:: 使用默认浏览器打开网址
start https://mp.csdn.net

---------------------

start 打开应用程序

:: 打开应用程序
start D:\tools\IntelliJ IDEA 2019.2.2\bin\idea64.exe

额,会报错。是因为路径中有空格

可以这么用双引号,这么改

:: 打开应用程序
start D:\tools\"IntelliJ IDEA 2019.2.2"\bin\idea64.exe

call命令


Dos命令

文件夹和文件

目录的查看、创建和删除

mkdir [目录名] 新建目录

如:

mkdir test

创建多级目录?

rmdir [目录名]  目录删除

如:删除刚刚新建的test目录

rmdir test

目录切换cd

只切换盘符,此时不需要cd ,直接"d:"字母大小写都可以。

格式:cd+空格+要切换的目录

结果就很尴尬了,,,为啥没切换成功呢?

 方法一:因为要先切换盘符啊

 方法二(推荐):

当然也可以在cd 和路径中间 增加一个'/d'

windows下路径分为:绝对路径和相对路径

绝对路径:在windows操作系统中凡是路径起点是盘符的都是绝对路径

相对路径:相对路径是相对于当前位置而言,以当前所在的位置作为起点。

切换到上级目录:cd ..

切换到根目录:cd \

type查看文件内容


其他

ping 命令

telnet 命令

相关文章:

bat脚本、dos命令

bat脚本 bat脚本就是DOS批处理脚本&#xff0c;就是将一系列DOS命令按照一定顺序排列而形成的集合&#xff0c;运行在windows命令行环境上。这个文件的每一行都是一条DOS命令 在命令提示下键入批处理文件的名称&#xff0c;或者双击该批处理文件&#xff0c;系统就会调用Cmd.…...

【星戈瑞】Sulfo-Cyanine5 mal红色荧光Cy5-maleimide

Sulfo-Cyanine5 mal是一种具有强荧光信号的染料&#xff0c;主要应用于生物荧光成像领域。它的化学式为C38H43KN4O9S2&#xff0c;分子量为803.00。这种染料具有良好的水溶性&#xff0c;可在水溶液中稳定存在。它的光学特性包括吸收峰位于646 nm和发射峰位于662 nm&#xff0c…...

Dcip的学习1-计算器

文章目录 前言一、配置安装环境1.1 网址1.2 再次打开需要进行的操作1.3 NodeJS控制台的操作1.4 出现的页面 二、Dcip生成计算器2.1 软件的基本单位 - Unitform中添加内容 2.2 OnleftChange(); 前言 只是为方便学习&#xff0c;不做其他用途&#xff0c; 一、配置安装环境 1.1 …...

ChatGPT使用9大技巧详解

目录 技巧1:To Do and Not To Do 技巧2:增加示例 技巧3:使用引导词,引导模型输出特定内容...

随机变量X,分布函数X~F(x)的理解。

1.随机变量X 1.通常认知的"x"与随机变量X 我们通常意义上的 x 是自变量&#xff0c;y f(x) 中的自变量。 但是 X 更多意义是 对应法则 " f " &#xff0c;X完整写法是 X(ω) ω ∈ Ω。 X这个对应法则&#xff0c;可以将样本点映射到实数轴上。 那么X这…...

11.构造器的查询.分块.聚合

学习要点&#xff1a; 1.构造器查询 2.分块.聚合 本节课我们来开始学习数据库的构造器查询以及分块和聚合查询。 一&#xff0e;构造器查询 1. table()方法引入相应的表&#xff0c;get()方法可以查询当前表的所有数据&#xff1b; //获取全部结果 $users DB::table(users)-&g…...

微服务保护——Sentinel

初识Sentinel 雪崩问题 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。 解决雪崩问题的常见方式有四种: 超时处理:设定超时时间&#xff0c;请求超过一定时间没有响应就返回错误信息&#xff0c;不会无休止等待舱壁…...

MySQL面试整理

https://houchen-study.oss-cn-hangzhou.aliyuncs.com/%E9%9D%A2%E8%AF%95/MySQL/MySQL%E9%9D%A2%E8%AF%95%E5%A4%A7%E5%85%A8%281%29.pdf 数据库基础知识 为什么要使用数据库&#xff1f; 什么是MySQL&#xff1f; 数据库的三大范式是什么&#xff1f; MySQL有关权限的表…...

Vscode C++环境配置

多文件编译 打开设置搜索coderunner 找到Executor Map 加入-I目录名 目录名/*.cpp 调试 点击调试以后会产生tasks.json文件&#xff0c;加入链接文件和库文件...

matlab小波去噪

本文将为您介绍如何利用MATLAB进行小波去噪处理&#xff0c;并应用于实际数据。小波去噪是一种通过对数据进行小波分解和重构的方法&#xff0c;有效地去除信号中的噪声&#xff0c;提高信号质量。该方法不仅广泛应用于信号处理、图像处理等领域&#xff0c;在实际生产和科研中…...

为什么要采用全网营销策略?全网营销有何优势?

现在市场上有很多全网营销公司&#xff0c;其实很多企业的经理人疑惑全网营销是要干什么&#xff1f;这些公司能干什么&#xff1f;这里小马识途营销顾问给大家做一个整体的解读。 全网营销&#xff0c;概括地说就是在整个互联网&#xff0c;利用各类互联网平台和工具对产品和服…...

prometheus实战之四:alertmanager的部署和配置

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《prometheus实战》系列的第四篇&#xff0c;在《prometheus实战之三&#xff1a;告警规则》中曾经提到过&#xff0c;整个告警功能分为规则和…...

【Python】glob 包的介绍和使用

glob 是 Python 标准库中的一个模块&#xff0c;它提供了一种查找符合特定模式的路径名的方法&#xff0c;类似于命令行中的 glob 命令。glob 模块用于读取指定路径下的所有符合特定规律的文件名&#xff0c;非常适合用于读取文件夹中的文件列表和操作符合特定规律文件列表。 …...

剑指offer(C++)-JZ48:最长不含重复字符的子字符串(算法-动态规划)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 请从字符串中找出一个最长的不包含重复字符的子字符串&#xff0c;计算该最长子字符串的长度。 数据范围…...

两阶段最小二乘法

两阶段最小二乘法 文章目录 两阶段最小二乘法[toc]1、ivreg包介绍2 、R语言实现 1、ivreg包介绍 R语言计量包ivreg用以解决线性回归模型的内生性问题。 描述&#xff1a;工具变量估计的线性模型通过两阶段最小二乘(2SLS) 回归或通过稳健回归M估计(2SM)或MM估计(2SMM)。主要的…...

ArcMap创建格网统计图

目录 前言 一、人口数据获取 来源一&#xff1a;中科院地理所公开数据集 来源二&#xff1a;WorldPop数据集 二、人口格网统计步骤 1.创建渔网 2.人口数据处理 2.1 栅格转点 2.2 空间插值——处理人口缺失数据 2.3 空间连接——渔网人口统计 总结 前言 在科研中&am…...

[VAE] Auto-Encoding Variational Bayes

直接看paper看得云里雾里&#xff0c;李沐视频一语道破天机&#xff08;建议从30min左右开始看GAN到Diffusion的串讲&#xff09;。VAE的核心思路就是下面&#xff1a; 做生成&#xff0c;其实就是从随机向量&#xff08;z&#xff09;到目标图像&#xff08;x&#xff09;的过…...

《程序员面试金典(第6版)》面试题 16.19. 水域大小(深度优先搜索,类似棋盘类问题,八皇后的简化版本,C++)

题目描述 你有一个用于表示一片土地的整数矩阵land&#xff0c;该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小&#xff0c;返回值需要从小到…...

Spring 注解之@RestController与@Controller的区别

目录 1&#xff1a;介绍 2&#xff1a;区别 3&#xff1a;总体来说 4&#xff1a;社区地址 1&#xff1a;介绍 RestController 和 Controller 是 Spring MVC 中常用的两个注解&#xff0c;它们都可以用于定义一个控制器类。 2&#xff1a;区别 返回值类型不同&#xff1a;…...

Java中的泛型是什么?如何使用泛型

Java中的泛型是指在定义类、接口和方法时使用类型参数&#xff0c;以使得这些类、接口和方法可以操作多种类型的数据&#xff0c;从而提高代码的重用性和安全性。Java的泛型机制是从JDK5开始引入的&#xff0c;它使得Java程序员能够编写更加通用和类型安全的代码。 什么是泛型…...

【飞行棋】多人游戏-微信小程序开发流程详解

可曾记得小时候玩过的飞行棋游戏&#xff0c;是90后的都有玩过吧&#xff0c;现在重温一下&#xff0c;这是一个可以二到四个人参与的游戏&#xff0c;通过投骰子走棋&#xff0c;一开始靠运气&#xff0c;后面还靠自己选择&#xff0c;谁抢占先机才能赢&#xff0c;还可以和小…...

力扣 146. LRU 缓存

一、题目描述 请你设计并实现一个满足LRU&#xff08;最近最少使用&#xff09;缓存约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以正整数作为容量 capacity 初始化LRU缓存。int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键…...

关于Oracle SCN的最大阈值

SCN每秒增长的速度跟Oracle的版本有关&#xff0c;在Oracle 11.2.0.2之前是每秒允许最大增长16384&#xff0c;在Oracle 11.2.0.2之后是默认每秒允许增长32768&#xff0c;这个值跟新增的隐含参数_max_reasonable_scn_rate有关&#xff0c;如下所示&#xff1a; NAME …...

Linux多路转接之poll

文章目录 一、poll的认识二、编写poll方案服务器三、poll方案多路转接的总结 一、poll的认识 多路转接技术是在不断更新进步的&#xff0c;一开始多路转接采用的是select方案&#xff0c;但是select方案存在的缺点比较多&#xff0c;所以在此基础上改进&#xff0c;产生了poll…...

Webpack打包流程

轻松了解Webpack 打包流程 Webpack是一个现代的JavaScript应用程序的静态模块打包器。它将多个JavaScript文件打包成一个或多个静态资源文件&#xff0c;以便在浏览器中加载。Webpack将应用程序视为一个依赖项图&#xff0c;其中包括应用程序的所有模块&#xff0c;然后通过该…...

React事件委托

React 事件委托&#xff08;Event Delegation&#xff09;是一种优化事件处理的技术&#xff0c;它通过将事件监听器添加到父级元素&#xff08;而不是子元素&#xff09;来实现。当事件触发时&#xff0c;事件会向上冒泡到父元素&#xff0c;然后在父元素上调用事件处理函数。…...

Notion——构建个人知识库

前言 使用Notion快三年了&#xff0c;它All in one的理念在使用以后确实深有体会&#xff0c;一直想找一个契机将这个软件分享给大家&#xff0c;这款笔记软件在网上已经有很多的教程了&#xff0c;所以在这里我主要想分享框架方面的内容给大家&#xff0c;特别对于学生党、研究…...

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘

在实现DINO Detection方法时&#xff0c;我们可能会遇到以上问题。因为在DeformableAttention模块&#xff0c;为了加速&#xff0c;需要自己去编译这个模块。 如果你的环境变量中能够找到cuda路径&#xff0c;使用正确的torch版本和cuda版本的话&#xff0c;这个问题很容易解…...

【数据结构】链表(C语言实现)

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…...

【2023程序员必看】大数据行业分析

1、政策重点扶持&#xff0c;市场前景广阔 2014年&#xff0c;大数据首次写入政府工作报告&#xff0c;大数据逐渐成为各级政府关注的热点。 2015年9月&#xff0c;国务院发布《促进大数据发展的行动纲要》&#xff0c;大数据正式上升至国家战略层面&#xff0c;十九大报告提…...