定义函数格式
一般来讲函数格式分为三部分
- :函数名
- 函数体
- 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:apause
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
chcp65001set /p age=
if %age% GEQ 18 (
echo 已成年)
pause
我们输入12试试看
显示输出12,
那我们输入19
显示已成年,这就是单分支if函数
判断的格式2:
双分支
上个例子输入18以下只显示数字,那怎样在用户输入十八岁以下显示未成年,十八岁以上显示成年呢?这个时候就要用到多分支if了
if 判断条件 (
当条件成立的时候执行的代码
)else (
当条件不成立的时候执行的代码
)
跟单分支不一样的是多一个分支,也就多了一个选择。直接上例子
@echo off
chcp 65001
set /p age=请输入年龄:if %age% GEQ 18 (
echo 已成年
) else (
echo 未成年
)pause
可以看到多了一个else命令,用来判断是否成年。若成年输出已成年,反之输出未成年
输入12,未成年
输入18,已成年。
完工!!
还没完:(另外还有if多分支格式,通常用于做一些六十分及格七十分良好之类的考试等级评级,这里不做演示!!)
3.2.16 for循环
什么是for循环?
简单来说就是将下面的代码跟上面的代码连起来进行循环运行,直到实现目标结果为止
for循环格式
for /l %%变量名 in (start, setp, stop) do (
echo %%变量名
)
我们来一个一个解释循环里面的东西,第一行那个%%i是变量名,后面括号的start是开始的意思,setp是步长的意思,stop是结束的意思,用跑步来解释,开始就是从起点出发,步长是你一下子跑几米,结束就是到达终点;那到达终点后我们则需要去看到排名,在这里就是echo里面的%%变量名了。
多说无益,直接举例:
@echo off
chcp 65001
for /l %%i in (1, 1, 100) do (
echo %%i
)
pause
我们跑一个这个代码,这个代码的意思是给变量名i里面整一个1,让他每次往上+1,每次加一输出一次,加到一百为止,跑一下看看
可以看到跑成了,那么就表示这个循环没问题
(因为笔者电脑里控制台总不乖,所以无法去演示for循环里面的其他东西,因此请各位见谅)
因此将常用的几个循环放在下面
其他for/dor类型
- dir /b 指定目录 这个语法可以用于获得指定目录下的所有文件和文件夹
- for /f 遍历指定目录下所有的文件和文件夹
- for /d 遍历指定目录下所有的文件夹
- for /r 遍历指定目录下所有的文件和子文件夹中的文件
- %%i 则是声明的变量,可以是任意的变量名,但变量名前面必须加上两个百分号%
3.2.17 输出重定向
输出重定向是什么
正常情况下,执行命令的时候,命令的输出结果在显示器上进行输出,这个叫做标准输出 通过>> 可以将本来显示在显示器上的内容保存到一个文件中,这就是输出重定向
输出重定向的两种用法及四种结果:7
1.>
- 如果文件不存在,可以创建一个新的文件,然后将命令的执行结果保存到文件中
- 如果文件已存在,那么就会将文件的原有内容删除,然后将命令的执行结果保存到文件中
2.>>
- 如果文件不存在,可以创建一个新的文件,然后将命令的执行结果保存到文件中
- 如果文件已存在,然后将命令的执行结果保存到文件中原有内容的后面
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
log.csdnimg.cn/img_convert/1ddfaf7dc5879b1120e31fafa1ad4dc7.jpeg)
网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-ZN9eEzXJ-1712644015509)]