Monday, June 18, 2012

DOS命令pushd、popd and for


一、pushdpopd

        pushd和popd往往是配对使用的。。。在这里不对它们的使用帮助进行赘述(预知详情请自行在命令提示符下查看)。下面以一个例子来进行说明:

eg..输入命令: pushd d:\example

同时假设当前工作目录为 c:\windows
则说明 将当前工作目录c:\windows压入栈中,并将改变工作目录路径为d:\example

当进行完相应操作(如用dir查看目录结构,以了解d:\example下的目录树)后,想要快速返回c:\windows路径进,可用popd将目录出栈。
        这一对将目录入栈出栈的DOS命令,在特定意义下的批处理中的作用是相当大的。具体问题则具体分析。。就不再举例进行说明。。。。

二、for
      for命令的功能是无比强大的(if命令也不可小觑,但在此不做讨论)。可以说for(和if)命令是DOS中的精华!
命令提示符对for的解释如下:
=====================================================
C:\>for /?
对一组文件中的每一个文件执行某个特定命令。

FOR %variable IN (set) DO command [command-parameters]
%variable 指定一个单一字母可替换的参数。
(set)      指定一个或一组文件。可以使用通配符。
command    指定对每个文件执行的命令。
command-parameters
             为特定命令指定参数或命令行开关。

在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.

======================================================

下面结合一个实例(打系统补丁(或其它软件补丁)的简单批处理)进行说明:
@echo off
for %%i in (*.exe) do %%i /passive /norestart /nobackup
pause
shutdown -r
把上述4行内容复制下来粘贴到记事本中然后另存为扩展名BAT的文件,并把这个*.bat文件和所有补丁文件放在同一个目录下。
记得除了放系统补丁(或者其它软件)和这个批处理文件其它的东西都别放!
此批处理的好处就是自动帮你把这个目录下的所有补丁都安装一次,不用人工去安装补丁。

安装参数有:

/quiet        无用户操作或显示
/passive      无人参与模式
/norestart    安装后不重启
/nobackup     不备份卸载需要的文件

提示:
                Windows Update命令参数含义:
                [-U][-f][-o][-z][-q][-I]
                -U 表示Unattended模式,即无人参予模式
                -f 在关机时强行关闭其他程序
                -o 覆盖OEM文件,不提示
                -z 表示安装后不重新启动计算机
                -q 表示安装的过程中不出现提示信息
                -I 表示列出安装的修补程序

------------------------------------------------------------------------------------------
特别说明:预知for命令的详细帮助信息,请在dos命令提示符下输入 for /?<回车> 查看!