? -> 匹配一个字符
* -> 通配符

逗号
逗号相当于空格,在某些情况下“,”可以用来当做空格使
比如
dir,c:/  == dir c:/
for %%i in (1 2) echo %%i == for %%i in (1,2) echo %%i

@ 加在一个命令的前面,让命令在执行的时候不显示,仅仅显示命令的结果(也就是命令的返回值)

%n  : %1  %2 表示接收到的第一个,第二个参数
%%i : 用来接收数据 如 %%i in (1 2) echo %%i
%var% : 用来得到变量var的值

'>' : ping www.example.com > XXX.txt   [清除原来的数据,并且写入新的数据]  pause>nul
'>>':                                  [追加数据到下一行]

|   :管道命令 用来将前一个命令的输出作为后面一个命令的输入 如 dir /s /b /a | find ".txt" 第一条显示当前文件夹中的所有文件、文件夹[递归],第二条是查找含有字符“.txt”的字符串。
^   :作为转义字符
~   :
    ① 用在 set 语句中,和 : 同时使用时,起到截取字符串的功能 set new_str=%str:~0,2%
  ② 用在 set /a 语句中时,它是一元运算符号,表示将操作数字按位取反,例如,set /a num=~1的执行结果是-2,set /a num=~0的结果是-1
  ③ 用在for语句中,表示增强for的功能,能够提取到更多的信息。例如:在批处理文件的for语句中:%%~i表示去掉第一对外侧引号,%%~zi表示获取文件的大小(以字节为单位),%%~ni表示获取文件名,%%~xi表示获取扩展名(带点号)……它们可以组合使用,如%%~nxi表示获取文件名和后缀名。
&   :一般而言,&表示两条命令或语句同时执行的意思。
<   :输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。
如
@echo off
echo 2005-05-01>temp.txt
date <temp.txt
del temp.txt
rem 这样就可以不等待输入直接修改当前日期

&&  || :这是一对含义截然相反的命令符,&&表示如果它之前的语句成功执行,将执行它之后的语句,而||则表示如果它之前的语句执行失败,将执行它之后的语句;在某些场合,它们能替代 if……else…… 语句;

>&  :将一个句柄的输出写入到另一个句柄的输入中
<&  :刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。

如何设置程序自启动,如果这个程序是病毒,那么一定会自启动的