2024年网络安全最全网络安全快速入门(三)windows批处理(1)

作用:

输出一段信息

方法一

举例:

输出“hello word”

echo helloword

通过上面的语句可以输出hellowword(结果如下图)

方法二

另外,echo可以用来拼接字符串

echo "hello""word"

输出结果如下图

运行成功。

ps:echo可以输出字符串,也可以输出变量中的值

3.2.2  变量和set命令
变量是什么?

举个例子,我们坐出租车,假如一公里五块钱,坐了三公里要付给司机十五块钱,坐了六公里要付给司机三十块钱,那么在付钱的过程中,一公里五块钱不变,变的是他行进几公里和相应的价钱。而后者则是变量。而行进公里数则是自变量,价格则是因变量。

变量分两种:
  • 用户自己定义的,也就是用set定义的
  • 系统自动生成的,这种不需要用户set,可以直接使用
变量中包含什么?

两个部分:

变量的名字

变量中保存的值

定义变量的格式:
set 变量名=变量值

ps:

  • 这里需要用set标识符来定义变量和赋值 "="号之间的空格格式要求严格,标识符后不要有空格!
  • 例如定义一个变量,变量名是name,变量的值是tom,也可以是ailisi,admin
  • 再定义一个变量,变量名是age,变量的值 是18,也可以是19,20,21
使用变量的格式

既然我们了解了怎样定义变量,那如何使用呢?

%变量名%

答:通过%echo%变量名进行输出

举个例子

定义变量保存姓名和年龄

set name=tom
set age=18
echo %name%今年%age%岁了

我们来看看输出

我们可以看到输出结果是一堆乱码,这是因为有些时候命令提示符无法识别中文,我们就需要在前面增加chcp 65001来使它进行识别

chcp 65001
set name=tom
set age=18
echo %name%今年%age%岁了
pause

来看结果

完成

ps:使用变量的时候,需要给变量前后百分号%。

3.2.3关闭/打开回显

回显是什么

其实就是在执行批处理文件的时显示批处理文件中的命令。直接下翻看图更能清晰直观

打开回显

显示批处理文件中的命令。【默认就是打开回显的】

打开回显的命令:

@echo on

(打开回显状态如下图)

关闭回显

不显示处理文件中的命令

关闭回显的命令:@echo off

@echo off

(直接上图)

可以看到少了很多处理文件中的命令,这个就是回显

echo命令的第二种用法

echo message

这个很简单,就是显示后面的信息,这里不做演示

echo message

echo 命令第三种用法:

显示当前回显设置状态,就是显示回显打开或关闭

ps:echo也可以输出文件

3.2.4  查看当前路径

这个工作可以通过内置变量来做

内置变量:

在系统中自动已经定义的变量

%cd%

%cd% 或者 %~dp0

echo %cd%
echo %~dp0

直接上图

此为当前bat所处于的文件夹

ps:内置变量并非dos命令,只是恰巧相似!!!!!

补充:

%time%

3.2.5REM
rem注释

注释的内容,就是一个解释信息【注释的内容是不会当做程序来运行】

rem作用
作用1:將脚本中某一行或者多少设置为不执行
作用2:解释脚本中的每行内容是作用

直接上图

rem

命令执行没有输出“HELLO WORD”

执行成功

ps:

  • 可以用"::“代替"REM”
  • ::可以提高执行速度,但是REM的兼容性更好
  • 建议大家用rem注释
3.2.6   pause

作用是将DOS界面暂停关闭来达到中止命令的效果

3.2.7   title

用来设置控制台的标题

直接上图

title ch225

pause

完成!

3.2.8中文乱码解决方案
方法一

使用 chcp 65001 命令行

chcp 65001

前面已经演示过了,不做赘述。

注意事项:

在执行程序的时候,中文的内容必须在 chcp 65001 下面,否则无法解决乱码问题

方法二

将bat文件使用txt编辑,然后另存为时选择 ANSI 编码格式

3.2.9   start

用于调用其他程序,如可执行文件exe


start qq.exe

通过此代码可以打开QQ,演示结果不做展示

ps:

  • qq.exe需要和批处理文件在同一个目录中,是为了方便
  • 也可以将qq.exe放到任意位置,但是在执行的时候,就必须加上路径
  • start在启动的时候,可以启动exe程序,也可以启动bat,rar,xsl等文件格式。
3.2.10  读取dos输入

简单来说就是由后台定义自变量,控制台去定义因变量,例如账户密码,用户输入的不是账户,而是自己的账户名称

作用:

  • 与用户交互:用户可以进行输入,系统会进行输出
  • 此时需要将用户输入的内容保存成一个变量,这里需要用到set标识符,还有参数/p
set /p 

上例子,

创建一个输入姓名和年龄的交互系统

echo "程序开始执行"
 
set /p name=请输入你的姓名
 
set /p age=请输入你的年龄 
echo 你的姓名是:%name% ,你的年龄是:%age%
 
echo "程序执行结束"
 
@echo on
pause

成品如下述视频

1709735747297

测试完成。

3.2.11函数

我们通过上面的命令已经可以写一些小程序了,但是很多程序经常会重复使用,如果通过上述指令一条条进行不仅会效率低下,而且还会容易出错,因此,为了提高代码使用率,我们可以通过函数来提高工作效率,减小工作误差。那么什么是函数呢?

什么是函数
  • 函数本质就是一段代码
  • 通过使用函数,可以实现代码的重复使用,进而可以提高程序的开发效率

(换句话来讲就是给某一段代码进行命名方便进行引用)

定义函数格式

一般来讲函数格式分为三部分

  • :函数名
  • 函数体
  • goto:eof
  • 通常函数内容都是以:函数名称开始,以goto:eof结束

举例

(下图为一个函数)

 :fun1
 echo hello boys
 pause
 goto:eof

上图函数的作用是输出hell boys

看结果

因为在程序中单独函数的goto:eof会直接跳转到程序的最后一行导致结束程序,因此我在中间加了一个pause命令用来暂停函数。

函数的调用方法:

我们已经在上述小结中做出了一个函数,那我们应该如何调用呢

调用函数就是

call:函数名
 
...
 
goto:eof

话不多说直接演示

 call:fun1
 
 
 
 goto:eof
 :fun1
 echo hello boys
 pause
 goto:eof

来看结果

成功。

那我们将call:fun1下面的goto:eof删除会出现什么情况?

直接上操作

call:fun1
 


 :fun1
 echo hello boys
 pause
goto:eof

代码如上图,看结果

可以看到,删除goto:eof函数之后函数会被执行两次这也是函数的一个特点。

因此,在批处理中,函数的位置,通常都是放到程序的末尾,这是因为批处理的函数会被自动执行 但是在其他的编程语言中,函数的位置可以在开头也可以末尾

另外,goto:eof 函数写的位置不一样,效果也不同,这里我们会在goto中专门去做笔记,这里不多阐述。

批处理函数的特点:
  • 批处理的函数在定义以后,是会被自动执行的
  • 【一定要注意,在各种编程语言,只有批处理的函数会被自动执行,其他的编程语言中的函数,必须 手动调用执行】
  • 同样的原因,在批处理中,函数的位置,通常都是放到程序的末尾,这是因为批处理的函数会被自动执行。如果不进行此操作,在重复调用的时候,容易出现函数执行了一次,程序就结束的现象, 但是在其他的编程语言中,函数的位置可以在开头也可以末尾。

举例

call:fun1



 :fun1
 echo hello boys
 pause
goto:eof
call:fun1
 pause

看演示结果

可以看出理论上应该调用三次函数的程序但只调用了两次就结束了,因此将函数部分写在最后即可

3.2.12goto

前面已经用了很多次了,goto函数的作用就是用于函数和主程序的跳转,通常写法都是goto:eof

注意:goto:eof写的位置不一样,效果也不相同,

  • 如果写在函数中,goto:eof 是用于终止函数运行
  • 如果写在主程序中,goto:eof 是用于终止整个程序的运行

举例

call:a
call:a
call:a
 
pause
 
goto:eof
 
:a
 echo hello world
 echo hello world11
 goto:eof
 echo hello world12

看结果

可以看到输出三次a函数,但没有输出word12,这是因为word12上面的goto:eof使当前执行函数结束然后接着上一条调用去执行命令,以此类推到第五行之后主程序函数中的goto:eof命令终止了整个程序的运行,所以没有去显示最后一条命令。

3.2.13  call

用于调用函数,也可以调用别的bat脚本

在函数调用已做解释,这里不做说明

3.2.14   errorlevel

是脚本内置变量,可以检测上一个命令是否执行成功,一般用于进行程序使用

  • 如果这个变量的值等于0,表示上面命令执行成功
  • 如果这个变量的值不等于0,表示命令执行失败

上实例:

@echo off
echo 2
echo %errorlevel%
pause

输出结果

当出现0时,则表示上面程序运行成功

来个不是0的案例


@echo off
set /p cho=
ping %pingcho% >nul
echo %errorlevel% 
pause

我们随便输入字母,

来看结果:

结果是1,证明命令错误,完工!

3.2.15 if判断

我们已经通过上面所表述的命令可以做出一个简易的登陆系统,接下来我们如何去让系统去识别所登陆的用户账号密码是否正确呢,这个时候就要用到if判断了

什么是if判断

顾名思义,就是判断变量值和变量名是否一致,一致的话做出一类操作,不一致的话做出另一类操作,具体语句如下。

if判断类型
第一种:判断数值:
  • 判断两个数是否相同
  • 判断两个数字的大小

判断数字用的格式

EQU - 等于                                        NEQ - 不等于

LSS - 小于                                         LEQ - 小于或等于

GTR - 大于                                        GEQ - 大于或等于

第二种:判断字符串

判断字符串相同 或者 不相同

判断字符串用的格式

== 等于

判断的格式1:

单分支

if 判断条件 (
 当条件成立的时候执行的代码
)

简单来说就是当条件成立时,执行括号里面的代码,当条件不成立时则不做任何动作。

例子


@echo off
chcp65001

set /p age=
if %age% GEQ 18 (
 echo 已成年
 
)
pause

我们输入12试试看

显示输出12,

那我们输入19

显示已成年,这就是单分支if函数

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取
hcp65001

set /p age=
if %age% GEQ 18 (
echo 已成年

)
pause


我们输入12试试看


![](https://img-blog.csdnimg.cn/direct/0af9d7aab8204ac5bd4e8548b1981330.png)


显示输出12,


那我们输入19


![](https://img-blog.csdnimg.cn/direct/da10278a83ed41da9b5d6e6f5e2953f8.png)


显示已成年,这就是单分支if函数



先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-AlhFj5Sq-1714740215665)]
[外链图片转存中…(img-sMnsjfxz-1714740215666)]
[外链图片转存中…(img-nXFhEckm-1714740215667)]
[外链图片转存中…(img-tVU7GA2H-1714740215667)]
[外链图片转存中…(img-wa1f8IZP-1714740215668)]
[外链图片转存中…(img-qRzOKe1f-1714740215669)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值