回显屏蔽 @ {#回显屏蔽}
表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
@用法举例:通过运行批处理文件对比pause和@pause命令即可明了@的效果。
重定向1 >与>> {#重定向1-gt-与-gt-gt}
将输出信息重定向到指定的设备或文件。系统默认输出到显示器。
如:echo aaaaa>a.txt
即可将本在显示器上显示的信息aaaaa输出到文件a.txt中,屏幕上没有任何显示。如果文件a.txt本来已经存在,该命令将首先擦除a.txt中的所有信息,然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息aaaaa。
echo aaaaa>>a.txt
类似于echo aaaaa>a.txt
。区别在于:如果a.txt本已存在,>a.txt会擦除a.txt中的原有内容,而>>a.txt并不擦除原有内容,仅在a.txt文件的末尾添加信息aaaaa。a.txt不存在时,二者没有差别。
重定向2 < {#重定向2-lt}
将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息。
重定向使用举例:
|---------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13
| ========================================= @echo off echo abcdefg------这是文件a.txt中的信息>a.txt echo 请任意输入字符,以回车结束: set /p ifo= cls echo 【 从屏幕获得的输入信息 】 echo %ifo% set /p ifo=<a.txt echo 【 从文件a.txt获得的输入信息 】 echo %ifo% pause>nul =========================================
|
读者观察命令与输出即可体会到重定向的功能和效果。
管道符号 | {#管道符号}
将管道符号前面命令的输出结果重定向输出到管道符号后面的命令中去,作为后面命令的输入。使用格式为:command_1|command_2
管道符号使用举例:
|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11
| ========================================= @echo off echo aaaa>a.txt del /p a.txt pause ========================================= @echo off echo aaaa>a.txt echo y|del /p a.txt pause =========================================
|
对比以上两个批处理执行结果,读者即可明白管道符的用法和效果。
需要说明的是,上面del命令添加开关/p只是为了让读者明白管道符号的使用方法,实际删除文件时不加/p开关即可实现无提示直接删除。
转义符 ^ {#转义符}
将特殊符号转化为一般符号,即剥离特殊符号的特殊地位。特殊符号指:| & > <
比如,如果我们想输出符号">",直接用命令 echo > 是不行的,必须修改为 echo ^> 。其余几个特殊符号类似需要有同样的处理。
转义字符使用举例:
|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8
| ========================================= @echo off echo aaaa>a.txt echo 第一句echo执行完毕 echo aaaa^>a.txt echo 第二句echo执行完毕 pause =========================================
|
比较上面的两句echo,第一句echo将信息aaaa输出到了文件a.txt,而第二句echo则在直接屏幕上显示除aaaa>a.txt
逻辑命令符 {#逻辑命令符}
逻辑命令符包括:&、&&、||
- & -无条件执行&符号后面的命令;
- && -当&&前面的命令成功执行时,执行&&后面的命令,否则不执行;
- || -当||前面的命令失败时,执行||后面的命令,否则不执行。
|---------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13
| ========================================= @echo off echo ^|^| reg add HKCU /v try /f||echo **成功** reg add HKCU1 /v try /f||echo **失败** echo ^&^& reg delete HKCU /v try /f&&echo **成功** reg delete HKCU /v try /f&&echo **失败** echo ^& reg delete HKCU /v try /f&echo **成功** reg delete HKCU /v try /f&echo **失败** pause =========================================
|
执行reg add或reg delete后,系统会给出执行结果;我们通过echo命令也给出了"执行结果"。对比系统和我们自己给出的结果,既可以验证逻辑命令的判断机理。
参考链接:https://xstarcd.github.io/wiki/windows/windows_cmd_summary_symbols.html