首页 » Web前端 » php批处置转义技巧_Dos 敕令进阶三批处理上

php批处置转义技巧_Dos 敕令进阶三批处理上

访客 2024-12-18 0

扫一扫用手机浏览

文章目录 [+]

批处理脚本讲解思路

一. 批处理先容1、批处理的概述:

批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:

php批处置转义技巧_Dos 敕令进阶三批处理上

(1)每一行可视为一个命令,

php批处置转义技巧_Dos 敕令进阶三批处理上
(图片来自网络侵删)

(2)每个命令里可以含多条子命令,

(3)从第一行开始实行,直到末了一行结束,它运行的平台是DOS。

批处理有一个很光鲜的特点:

利用方便、灵巧,功能强大,自动化程度高。

批处理文件的扩展名是BAT或者CMD,把任何一批命令放在有该扩展名的文件里,实行的时候都会按顺序逐条的实行, 在往后学习内容中, 还可以在个中加入一些逻辑判断的语句,即让里面的命令在知足一定条件时实行指定的命令。

2、举例解释:

第一步:建立批处理文件

新建一个文本文档,将名字改为 第一个实例.bat

创建批处理文件 第一个实例.bat

重命名

第二步:写代码

右键\"大众第一个实例.bat\"大众文件,选中“编辑”,然后写代码。
代码如下:

@echo off

echo 非常感谢所有条友的关注与支持!

echo 感激不已, 惟有负责, 毫无保留的分享.

pause

编辑批处理脚本

第三步:保存后,双击“第一个实例.bat”运行。

实行批处理脚本

大略理解代码意思:

@echo off 这一句是关闭回显(缺省回显是打开的),如果没有这一句的话会显示一些比较碍眼的信息。

echo 非常感谢所有条友的关注与支持!

echo 感激不已, 惟有负责, 毫无保留的分享.

上面两条指令的结果是在屏幕上打印echo后面的内容(如上图例脚本实行的结果)

pause 这个pause,英文是停息的意思,让脚本实行完上面的命令后等用户确认退出

详细阐明:

(1)、echo off 关闭回显(即批处理中的命令语句不会显示)

(2)、echo on 打开回显

编辑中去除关闭回显的指令行

开启回显实行的结果

在CMD中阐明一下回显是咋个意思

(3)、符号“@”的意思是不显示它后面的命令语句,只显示命令实行的结果!

把首行命令中的小老鼠符号去掉看看

(4)、echo 用于显示

echo命令的浸染有两个,一个时在CMD上显示一行内容,

如:echo 非常感谢所有条友的关注与支持!!

还有一个是显示关闭命令的回显:echo off

我们在echo off命令前加一个“@”符号是为了不让echo off这条命令本身显示出来,可以让批处理达到整体的都雅!

如测试以下代码:

@echo off

echo 你好

echo 你好

pause

第二个实例

再次阐明一下:pause命令便是停息的意思,防止批处理实行完毕后直接退出,实行到pause命令时CMD就会显示

“请按任意键连续”这一行!

3、根本知识补充

前面几篇根本知识的链接:

DOS根本命令汇总(一)

DOS根本命令汇总(二,三,四,五)

Dos命令进阶(一)---Net, Netstat

Dos 命令进阶(二)---FTP命令

如果大家对那个DOS命令不明白,可以通过输入“命令”/? 或 实行 \公众help 命令名\"大众

4、详细实例剖析

@echo off

echo 正在打消系统垃圾文件,请稍后。


del /s /f /q %systemdrive%\.tmp >nul 2>nul

del /s /f /q %systemdrive%\.gid >nul 2>nul

del /s /f /q %systemdrive%\.chk >nul 2>nul

del /s /f /q %systemdrive%\.old >nul 2>nul

del /s /f /q \"大众%userprofile%\localsettings\temp\.\公众 >nul 2>nul

del /s /f /q\"大众%userprofile%\recent\.\"大众 >nul 2>nul

del /s /f /q\"大众%userprofile%\cookies\.\公众 >nul 2>nul

del /s /f /q \公众%userprofile%\localsettings\history\.\"大众 >nul 2>nul

del /s /f /q \公众%windir%\temp\.\"大众>nul 2>nul

del /s /f /q\"大众%windir%\prefetch\.\公众 >nul 2>nul

echo 垃圾文件清理完毕!

echo. & pause

剖析实例代码:

有了前面几篇根本命令的学习, 想必条友已经知道这个 del 命令是怎么个意思了吧, 它便是删除文件的命令.

del /s /f /q %systemdrive%\.tmp >nul 2>nul 取这一行代码来解释一下

/s 参数是删除当前目录及其子目录下的指定文件

/f 表示删除没商量,逼迫删除

/q 表示静默实行, 不提示确认信息.

%systemdrive% 这个是系统环境变量, 你在CMD窗口实行 echo %systemdrive% 看是什么结果

echo 查看系统环境变更

>nul 2>nul 这个呢? 它的意思是将命令实行时的信息或者缺点, 还是图解一下吧.

>nul 和 2>nul 的功能演示(后面的分外符号中还会提到)

注:这是一个用来打消系统垃圾文件的批处理程序。
命令实在也是很大略的,紧张是用到“del”命令和干系的参数来实现, 有关“del”命令的参数大家可以参考“del /?”来得到详细的帮助。

其余还有“%systemdrive%、%userprofile%”。
那么它们是什么呢,这些实在是系统变量,也便是系统目录的另一种表示形式而已。
我们可以通过输入“echo %userprofile%”来看看它代表的是系统中的那个目录。
那么其它的也是一样

.tmp的意思是,这个号是一个通配符号,它表示的是所有以 .tmp 为扩展名的文件。
不知道大家是否能理解?

有关系统变量和通配符后面还会详细解释

二. 分外字符详解

1、@

隐蔽实行的命令,只显示结果。

例子:

echo 条友们好

@echo 条友们辛劳了

pause

屏蔽回显命令的演示

2、&

命令连接符号,便是将两个命令连续实行,不用分行

例子:

dir c:\ & dir d:\ & dir e:\

多命令同行实行连接符 &

3、&&

连接两个命令,当&&前的命令成功时,才实行&&后的命令

说白点儿便是, &&前面的命令先实行成功才能实行 &&后面的命令, 如果前面命令实行失落败, 后面就不实行了.

高一学的逻辑运算知识在这里用上了, 这叫一假则假, 两个条件有一个为假, 全体都为假了, 则就没必要实行下去了, &&前面那条指令失落败了, &&后面的指令就不会再实行了.

例子:

dir x:\ && dir d:\

一假则假

4、||

命令连接符号,表示上一条命令实行失落败后,才实行||符号后的内容

这个命令跟上一个相反, 如果 || 前的实行成功, 则 || 后面的命令就不实行了. 逻辑上的叫一真则真

例子:

dir x: || dir c:\

|| 前面的失落败了才实行 || 后的指令

如果实行: dir c:\ || dir d:\ 呢, 则只实行 dir c:\ , dir d:\ 这条指令就不会实行, 这一条希望条友能亲自考试测验一下看.

5、|

管道符号,便是将上一个命令的输出的内容,作为下一个命令的输入内容

管道是一种很形象的说法, 便是将 | 前面的指令实行后的输出结果暂存在内存中, 作为 | 后面指令实行的输入内容.

这个符号 \"大众|\"大众 就好似一条管理, 将前的送到后面去, 发挥你屌炸天的想象力吧, 嘿嘿嘿

例子:

netstat -an | find \"大众135\"大众

为了详细我先分别实行 netstat -an 和 find \"大众135\公众 , 而后的 find \公众135\公众 意思是在某文件中查找字符串135, 在哪个文件中呢, 这里没有给, 以是单独实行 find \"大众135\"大众 铁定会实行失落败的, 看下图:

单独实行 netstat

find命令, 在某文件中查看指定的字符串

netstat 与 find 通过管道命令合营实行

6、>

重定向符号,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容被覆盖

例子:

dir c:\ > cdir.txt

dir c:\ > d:\cdir.txt

重定义符号 > 的利用

7、>>

重定向符号,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会被增加在后面

该符号的浸染与前面那个 > 符号的差异是: 这个 >> 符号的浸染是向一个文件中追加内容, 如果该文件不存在则创建, 如果存在, 则在文件已有内容的后面追加要输出的内容.

而 > 符号的浸染是, 新建一个文件, 并向该文件中添加要输出的内容, 如果指定的文件已存在, 则先清空文件内容再添加要输出的内容.

例子:

echo 第一行内容 >> test.txt

echo 第二行内容 >> test.txt

echo 第三行内容 > test.txt

两个重定向符号的比拟

8、^

转义字符, ^是对分外符号<,>,&的前导字符,在命令中他将以上3个符号的分外功能去掉,仅仅只把他们当成符号而不该用他们的分外意义。

转义字符的浸染演示

9、% 批处理变量勾引符

这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起利用的情形除外)。

引用变量用%var%,调用程序外部参数用%1至%9等等

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 % 为命令行通报给批处理的参数

%0 指批处理文件本身,包括完全的路径和扩展名

参数 %0的用途演示

%0 参数在批处理中的演示效果

%1 第一个参数

%9 第九个参数

%1--%9这是9个外部参数, 多于9个时就利用%

打算几个数字的和并打印

% 从第一个参数开始的所有参数

匹配所有外部参数%

参数%0具有分外的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。

例:最大略的复制文件自身的方法

代码d:\第五个实例.bat:

copy %0

这段代码的意思便是 复制脚本自身到当前目录下. 这里省略一个点, 完全的写是:

copy %0 .

如果条友看了我前面讲的那CD 命令该当知道 . 代表当前目录, .. 代表父级目录, 以是就有 cd .. 便是返回上级目录.

先切换到与脚本文件所在目录不同的目录中,比如C盘下, 再实行:

d:\第五个实例.bat

小技巧:添加行内注释

%注释内容%(可以用作行内注释,不能涌现重定向符号和管道符号)

为什么这样呢?此时“注释内容”实在被当作变量,其值是空的,故只起注释浸染,不过这种用法随意马虎涌现语法缺点,一样平常不用(即是没说)。

10、

通配符号,表示任意个任意字符

例子:

dir c:\windows\.log

del /s /q /f c:\windows\.log 逼迫删除当前目录及其子目录下所有以 .log 结尾的文件.

通配符 号的运用实例

11、?

通配符号,表示任意一个字符

例子:

dir c:\?indows 列出C:\ 目录下所有任意以单个字符开头并以 indows 结尾名称的文件列表

如果 C:\ 下有Aindows , Bindows, HEindows 三个文件夹, 那么 ?indows 匹配 Aindows , Bindows 两个文件, 但HEindows却不匹配, 由于它因此 HE两个字符开头的文件.

通配符 ? 的操作实例

12、.

表示当前目录

例子:

dir .\ , dir . , dir 三条指令是同样的实行结果, 如果是当前目录, 点这个符号可以省略

点符号在CMD中的运用

点符号在CMD中的运用

13、..

表示上一级目录(也称父级目录)

例子:

dir ..\ 查看父级目录下的文件列表

两点表示上一级目录或父级目录

14、\公众 \"大众

界定符号,常日用来引用有空格的目录

例子:

dir \公众c:\Documents and settings\公众 这个界定符在WIN7中可以不用, 但在XP系统中还是会要用到的. 当你要切换的目录名中有空格时, 请利用 双引号 括起来, 否则会报错. 建议须要不须要都利用这个界定符, 该当更保险一些.

目录名中带空格须利用双引号进行包括

15、:

标签定位符号,表示后面的内容是一个标署名

例子:

@echo off

:again

echo 恳切感谢条码们对

pause

goto again

标签跳转操作

16、,

某些时候可以当空格来利用

例子:

echo,

dir,c:\ 这个例子的意思太白了,

17、;

分号,当命令相同时,可以将不同目标用来隔离

例子:

dir c:\;d:\ 如果你想同时查看 C:\, D:\ 两个目录下的文件列表, 就可以一个DIR 命令, 后跟多个要查看的目录路径, 相互之间以分号隔开就可以了.

18、::

表示后面的语句是注释。
相称于c++中的\公众//\公众

例子:

@echo off

::显示c盘根目录文件. (注释便是解释性的笔墨内容, 不作为指令实行)

dir c:\.txt

pause

注释符的利用

19. < 输入重定向

将要实行的代码存在一个文本test.txt 中:

d:

cd D:\我的头条20171127

dir

pause

实行命令:

cmd.exe < test.txt

输入重定向符号的利用

20. 逻辑运算符

EQU(Equ-al) - 即是

NEQ(N-OT Equ-al) - 不即是

LSS(LESS) - 小于

LEQ(L-ESS Equ-al)- 小于或即是

GTR(GREATER) - 大于

GEQ(G-REATER Equ-al) - 大于或即是

例如下面这段代码:

dir aaaa

if %ERRORLEVEL% EQU 0 (echo success) else (echo fail) [如果即是0解释实行成功, 否则实行失落败]

先实行 dir aaaa 这个命令, 下面 if 命令语句(后面会细讲)是用来判断上一条命令是否实行成功, 如果成功就打印 success, 否则打印 fail.

逻辑运算符的利用

综合实例:

@echo off

ping /n www.qq.com || shutdown /r /t 180 /c 命令实行失落败了,180秒后重启! && exit

%0

这条批处理文件紧张是用ping命令来判断网络的连通性,当我们的ping命令实行成功后就不会实行它后面的内容。
那如果没有ping通的话就实行它后面的干系命令了。

%0它表示的便是无限循环的实行我们的批处理程序。

把稳: 如果欠妥心进入倒计时关机状态, 请实行 shutdown -a 指令来取消哦.

开启实行实例

我关闭了实行窗口或CTRL+C, 然后就...

取消关机状态

来看一下shutdown命令的帮助

shutdown /? 帮助文档查看

如何判断一条指令是否实行成功

根据我自己编写的脑图构造, 这才说了1/3的内容, 篇幅觉得有点儿过长了, 怕些许条友们都没有耐心读下去了. 先到这里吧, 小编起誓绝不是为了揍文章篇数的, 俺向来畅所欲言, 言无不尽, 恳切满满, 还请条友们明察!

标签:

相关文章