本人在外出差中,今天有人在ICQ上问我如何编写一个脚本--在正确执行第一个命令后执行第二条命令,他怀疑他用的 IF 的方法不对,我推荐了他一个更加简便的方法,使用组合命令(Compound Command),反正闲着也是闲着,就随便写写吧,一般常见的组合命令的主要有以下几种:
1、&
Usage:第一条命令 & 第二条命令 [& 第三条命令...]
用这种方法可以同时执行多条命令,而不管命令是否执行成功
Sample:
C:\>dir z: & dir c:\adam
The system cannot find the path specified.
Volume in drive C has no label.
Volume Serial Number is 0078-59FB
Directory of c:\adam
2002-05-14 23:51 <DIR> .
2002-05-14 23:51 <DIR> ..
2002-05-14 23:51 14 sometips.gif
2、&&
Usage:第一条命令 && 第二条命令 [&& 第三条命令...]
用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令;
Sample:
C:\>dir z: && dir c:\adam
The system cannot find the path specified.
C:\>dir c:\adam && dir z:
Volume in drive C has no label.
Volume Serial Number is 0078-59FB
Directory of c:\adam
2002-05-14 23:55 <DIR> .
2002-05-14 23:55 <DIR> ..
2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
2 Dir(s) 768,671,744 bytes free
The system cannot find the path specified.
在做备份的时候可能会用到这种命令会比较简单,如:
dir \\192.168.0.1\database\backup.mdb && copy \\192.168.0.1\database\backup.mdb E:\backup
如果远程服务器上存在backup.mdb文件,就执行copy命令,若不存在该文件则不执行copy命令。这种用法可以替换IF exist了 :)
3、||
Usage:第一条命令 || 第二条命令 [|| 第三条命令...]
用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;
Sample:
C:\adam>dir sometips.gif || del sometips.gif
Volume in drive C has no label.
Volume Serial Number is 0078-59FB
Directory of C:\adam
2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
0 Dir(s) 768,696,320 bytes free
好了,就写这么多废话吧,也许大家都知道这些东西,权且当作忆旧吧。
呵呵,很经典的!:)
