Windows下bat脚本(cmd命令学习)

学习笔记 专栏收录该内容
5 篇文章 0 订阅
  1. 怎么创建bat文件?

①使用copy con 文件名 

这样既可在黑窗口里面书写bat命令,然后写完后按ctrl+z结束编辑

②使用edit来创建(很古老已不用)

③使用记事本,改扩展名为bat(现在几乎都使用此方法)

 

  1. bat的常用语法及功能

①echo  要在屏幕上显示的信息

用法:echo off 关闭所有的命令显示;

      echo on 允许批处理命令在执行过程中显示;

      echo  我就是要在屏幕上显示的内容    会在屏幕上输出“我就是要在屏幕上显示的内容”。

②@  表示此行的bat命令不在执行过程中显示

③pause  暂停当有键盘输入时向下执行

④call xxx.bat  调用xxx.bat并执行;

call :abc

:abc

echo  我是abc后面的命令,会执行我

⑤rem 注释  会忽略rem后面的内容

⑥set i=’c:\’  设置变量i并赋值为“’c:\”

要调用i时  使用%i%  即可

Dir /w 以列表形式展示当前文件目录

⑦goto a  跳过中间的命令,直接去执行a命令

如:

@echo off

goto a

echo 我不执行

echo 我也不执行

echo 我们不执行

:a

dir c:\

以上语句只执行dir c:\

⑧start 重新启动一个单独的命令行窗口,然后执行指定的命令

例如:

Title新窗口标题  dpath要执行的路径 min最小化窗口 max最大化窗口 wait等待新窗口命令执行完

⑨if 判断语句 if xxx else xxx

例如:

/i 表示忽略大小写

 

⑩type显示某个文件的内容

如:type a.txt

11.for循环语句

例如:

/a表示数字类型

for %%i in (判断条件)do(循环体)

i为变量 in是判断是否存在

 

12.setlocal和endlocal设置环境变量(局部环境变量)

 

 

13.shift设置批处理从第n个参数移位

格式:shift [n] n的范围为0-8

例:

14.通配符

 

15.重定向“<”,“>”,“>>

“<”把右边的内容替换到左边

“>” 把左边的内容替换到右边

“>>” 把左边的内容追加到右边

Sort排序后显示

例:

 

16.“|”管道符:

 

  1. 批处理文件处理实例

①批量更改文件名

例:

Ren 更改名字

更改编号为1-99的文件名

/l 表示在指定的范围内循环

 

自动循环某个程序

errorlevel表示的是环境变量,如果网络ping不通则errorleve一定不为0

goto表示直接跳到某位置执行

>nul 表示将ping的结果存储到某个随机内存

 

 

 

 

 

打开当前运行的程序的完整路径:

 

%0表示当前运行的批处理程序的名字

%~dp0表示指定的变量扩展到路径

~dp0表示某个程序指定的路径

 

将文件名更改为当前系统日期

 

%1表示测试输入的文件是否存在

~x表示变量的扩展名,%~x1表示%1的扩展名

/f使用文件解析过程处理字符串等

Data/t表示系统当前时间,如2019-03-18

 

使用批处理自动接收用户信息

/p代表用户输入的数值以字符串处理

/t表示只显示当前的日期,而不输入

Time/t 显示当前的时间而不输入

 

 

 

 

 

 

计算当前目录及子目录所占的磁盘空间

/f表示以解析方式工作

 

删除当前目录的所有空文件夹及空子目录

 

 

 

 

 

 

 

在文件夹上面添加“在cmd中打开文件夹”

 

Pushd 切换到某个盘符下面

 

给某文件创建快捷方式

 

自动替换文件中指定的字符串

 

在文件的前面添加当前的日期及时间

 

 

 

 

定制xp个性化登录

 

让xp正常关闭系统

 

修复boot.int文件,xp系统

定制“开始”菜单内容

 

常用命令解析

:表示一种标记  会被goto语句识别执行

::表是的是一个注释,不显示不执行

 

表示没有了“请按任意键继续”

Title 表示命令行窗口的名称,title一般放在第一行

Color 设置控制台输出程序,由两个十六进制数表示颜色,第一个表示背景色,第二个表示前景色

Mode 设置串口:以下是设置cmd窗口

Goto和:123nm  表示跳转程序

Type显示文件内容,find查找文件内容

 

Start 调用外部程序在新窗口执行

在另外窗口打开d盘

 

显示txt文件是关联到哪个程序的

 

把txt文件关联到word程序

Ftype exe=%1 %*  修改exe程序的属性为其他的(此命令不要乱用)

 

 

Pushd进入某个目录

Popd返回保存的文件夹

 

调用自己

 

 

 

 

 

变量延迟:读取的时候再赋值

 

 

修改当前系统日期

 

 

^表示转意符

^也可以续行

 

组合命令:把多个命令当成一个命令执行,前面出错不影响后面的执行

 

组合命令,前面出错后面就不执行

 

前面的命令错误才执行后面的,后面的对了就不执行它后面的

 

优先级由高到低:

 

,可以当作空格使用

“”可以包含空格

;表示当命令相同时可以使用;来链接不同的参数,都会去执行

 

!用来表示变量

 

For语句的基本用法

 

%%i表示变量

Command1是for里面的第一个参数,可以是一个或多个,称为元素

把Command1赋值给%%i,然后执行Command2,直到所有的元素都执行一遍结束循环

例子:

输出:

例子1:列出当前磁盘空间的所有盘符

例子2:显示当前目录的所有文件

例子3:

For循环参数

/f 文件解析,读文件,一次读一行,例如:

 

切分字符串,字符串后面的都不要,只要前面的

 

Tokens开关

以上是以“,”分割字符串,然后读取第三节字符串

读取多节字符串如下:

简写如下:

 

忽略前两行,从第三行开始读,代码如下:

忽略逗号开头的行

增强解决中文空格等,代码如下:

未增强的:

 

变量延迟:产生原因是在复合语句中把一条语句加入内存中后然后赋值,在复合语句中赋了值的变量是不改变的,要解决此问题,需要写上setlocal enabledelayedexpansion,启用本地延迟扩展;使用变量延迟时,引用变量时需要使用!!,而不是%%

使用call也能解决变量延迟

 

For循环的/r参数

R表示的是遍历

遍历目录的两种方式,第一种效率高

遍历文件夹

 

匹配当前目录或指定目录的文件夹,/d表示匹配的意思

 

循环计数器/I,循环次数取决于括号里面的值

X表示开始,y表示步长,z表示终止值

 

 

 

 

 

 

 

 

 

For语句的变量

 

 

 

 

 

 

把空格替换为空

把点替换成猎豹网校

截取字符串,结果为ww

结果为.net.cn

执行命令成功。Errorlevel的值为0

 

以下语句表示Errorlevel大于等于0执行echo后面的命令

 

If语句:

 

 

比较字符相等以及文件是否存在

 解决空格问题

 

 

批量ping脚本:

@echo off
for /f "tokens=*" %%i in (目标地址.txt) do (
ping %%i >> ping结果.txt
echo ........................................................ >> ping结果.txt
echo ........................................................ >> ping结果.txt
echo ........................................................ >> ping结果.txt
)

 

 

  • 9
    点赞
  • 1
    评论
  • 35
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值