Windows 2003 老树新花说DOS

发表于:2007-07-13来源:作者:点击数: 标签:
Windows 2003 老树新花说DOS阶段教学 指引 命令:Defrag 命令:Freedisk 命令:Rmdir?rd 命令:Expand 命令:Forfiles 命令:Inuse 命令:Recover 命令:Tasklist 命令:Taskkill 使用实战 老树新花说DOS 中国电脑教育报 李学昌 Windows 95发布之前,PC机的

Windows 2003 老树新花说DOS阶段教学 指引

  命令:Defrag
  命令:Freedisk
  命令:Rmdir?rd
  命令:Expand
  命令:Forfiles
  命令:Inuse
  命令:Recover
  命令:Tasklist
  命令:Taskkill


  使用实战

老树新花说DOS

中国电脑教育报 李学昌

  Windows 95发布之前,PC机的操作系统是DOS的天下。时至今日,Windows已升级至Windows 2003,DOS这个辉煌一时的操作系统早已被大多数人遗忘。但实际上,DOS在系统维护及安装过程中仍然有着特殊的作用,DOS命令也在随着Windows的升级而加强,比如Windows 2003中新增的命令提示符工具就达60多个!这些新增加的DOS命令在实现特定功能时,往往比Windows操作更简洁、更有效!为了让读者朋友能全面地了解这些强大的DOS命令及其用法,  特意为大家组织了DOS系列实战专题,希望大家能从中有所收益。

  提示:在Windows 2000/XP/2003中单击“开始→帮助和支持”,在“搜索”后输入“新命令行工具”,即可看到各个版本新增的命令行工具,双击任意一个命令可以看到它的具体用法及举例说明。在命令提示符下,输入不带任何参数的命令或在命令后加上参数“/?”也可查阅到该命令的使用说明。这两种方法得到的帮助信息不尽相同,可以相互补充。

  当然,在屏幕上看远不如打印输出后再看的效果好,如果要打印输出,可采用以下办法:

  1. 在命令提示符窗口右击,选择“标志”,然后你就可以像在文本编辑器中那样选中内容,选中后的内容由原来的黑底白字变为白底黑字,再按一下回车键或单击一下鼠标左键,选中的内容便会自动复制到系统剪贴板。

  2. 利用Windows 2003下的新命令行工具Clip也可完成以上任务。比如:输入“dir/﹖ | clip”可将有关dir命令的用法复制到系统剪贴板。

  命令:Defrag

  功能:磁盘碎片整理

  语法:defrag Volume [/a] [/v][/f]

  参数:[/a]参数只分析当前磁盘并提示是否应该对该盘进行磁盘碎片整理[/v]参数可以详述分析结果。Volume指盘符,如“C:”。

  实战:在Windows下整理磁盘碎片时,如果磁盘的空闲空间少总空间的15%,程序将不能进行,如果加上参数/f(提示:在2003下也可用 “-” 代替原来的“/”),可以强制进行磁盘碎片整理。

  命令:Freedisk

  功能:在继续运行下一个程序之前检查是否存在指定数量的可用磁盘空间。

  语法:freedisk [/s Computer [/u [Domain]User [/p [Password]]]] [/d Drive] [Value]

  参数:“/d Drive”指定要查询磁盘空间可用性的驱动器;“Value”检查是否存在指定数量的可用磁盘空间,可以用字节、KB、MB、GB、TB等为单位。

  对于无人值守安装,可以在批处理文件安装中使用 freedisk 命令,以便在继续安装之前检查可用磁盘空间。

  在批处理文件中使用 freedisk 命令时,如果存在足够的空间,那么该命令返回 0,否则返回 1。我们可以利用这个返回值去控制后面程序的运行。

  ① 假设我们要确定驱动器 C上是否存在至少 5GB 的可用空间,在命令提示符下键入“freedisk /d c: 5GB”后回车即可验证可用空间是否足够。

  ② 利用该命令,我们可以为自己设计的软件加入空间检查功能。假设设计的软件主执行程序,程序名是为Mysoftware.exe,默认安装在D盘上,需要空间为500MB。现在打开记事本,输入以下内容:

  freedisk /d d:500mb

  if not errorlevel 1 goto install

  echo The space is not enough to install this software

  goto end

  :install

  Start mysoftware

  goto end

  :end

  然后单击“程序→另存为”,在“保存类型”后选择“所有文件”,在“文件名”后输入“X.bat”(X代表任意文件名,比如我们可以设置为Setup.bat),这样一个名为X.bat的批处理文件就建好了。运行(双击之即可)它后会有什么效果呢?如果D盘的剩余空间多于500MB,安装程序就会自动运行,否则提示“The space is not enough to install this software”,安装程序自动退出。


  命令:Rmdir?rd?

  功能?删除目录。Windows 2003中的Deltree命令已被Rd命令取代。

  参数:在Windows 2003下,加上参数“/s”后可以删除指定目录和所有子目录以及包含的所有文件;加上参数“/q”后能在安静模式中运行(即删除目录前用不确认,但不能删除包含隐藏或系统文件的目录)。

  实例:我们以修改注册表为例,说明怎样在电脑启动时自动清除Temp目录下的文件。

  ①新建一个名为Deltemp.bat的批处理程序,程序中包含的命令行是:

  rd c:windows emp /s/q

  md c:windows emp

  将这个批处理文件保存在C:盘根目录下。

  ②打开注册表编辑器,依次展开[HKEY_CURRENT_USER

  SoftwareMicrosoftWindows NTCurrentVersionWindows ]分支,在右侧窗口中右击(如果没有,请新建一个)“load”项目,选择“修改”,在打开窗口中的“数值数据”下面输入“d:deltemp.bat”,然后退出注册表编辑器即可。

  命令:Expand

  功能: 展开一个或多个压缩文件。该命令用于从安装盘中检索压缩文件,修复部分系统文件。

  语法: Expand source [/F:files] [destination] [/d] [/y]

  参数: source——指定要展开的文件。source 可由驱动器号和冒号、目录名、文件名或组合所组成。不能使用通配符。

  /f:files——如果源文件包含多个文件,指定要提取的文件的名称,可以对要提取的文件使用通配符。

  Destination——指定提取文件或每个单独文件的目标目录和(或)文件名。

  /d——列出 CAB 文件中包含的文件而不展开或提取。

  /y——在展开或提取文件时不出现覆盖提示。

  实例:从安装光盘(假设为D盘)的驱动程序CAB文件中提取 Msgame.sys 文件并将其复制到 C:WindowsSystemDrivers下。

  expand d:i386driver.cab :msgame.sys c:windowssystemdrivers

  命令:Forfiles

  功能:从文件夹或文件树中选择要进行批处理的文件,也就是说,它能将搜索到的文件作为参数传递给后面的DOS命令,从而对搜索到的文件进行改名、删除、复制等操作。与DOS下的“For…In…Do”作用类似,但功能更强大。

  语法:forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}]

   [{MM/DD/YYYY | DD}]]

  参数:/p Path——指定搜索路径,表明要从哪里开始搜索,默认的文件夹是当前工作目录;

  /m SearchMask——按照 SearchMask设置的文件名参数搜索文件。默认的 SearchMask 是?.?,即所有文件,可使用通配符(?和?)。比如:?.exe表示搜索所有扩展名是.exe的文件、e??.?表示搜索首字符是e、主文件名只有3个字符的所有文件;

  /s——在所有的子目录中进行搜索;

  /c Command——对搜索到的每个文件上实施指定的命令。带有空格的命令字符串必须用引号括起来。默认的命令是“'cmd /c echo @file'”,即显示全称文件名,包括路径、主文件名、扩展名等;

  /d[{+ | -}] [{MM/DD/YYYY | DD}]——选择日期大于或等于 (+)或者小于或等于 (-)指定日期的文件。

  实例:①清除D盘下的所有扩展名是.tmp的文件,请键入以下命令:

  forfiles /p d: /m ?.tmp /s /c 'cmd /c del @file'

  ②将D盘下的所有扩展名是.jpg的文件扩展名改为.gg:

  forfiles /p d: /m ?.jpg /s /c 'cmd /c ren @file ?.gg '

  ③只查找并显示盘目录:

  forfiles /p c: /s /m ?.? /c 'cmd /c if @isdir==true echo @file is a directory'

  该命令行可以将C盘下的所有目录查找出来,并显示为类似“XXXX is a directory”的格式。


  命令:Inuse

  功能:替换被锁定的操作系统文件,要使替换有效必须重新启动电脑。

  语法:Inuse Replacement Destination [/y]

  参数:

  Replacement——指定已更新的文件名,包括完整的路径;

  Destination——指定希望替换的且位于本地驱动器上的当前已锁定的文件,必须包括完整的物理路径名称;

  /y——取消当 Inuse 尝试替换该文件时将出现的确认提示。

  说明:

  必须用管理员组成员的身份登录才能使用该工具。重新启动计算机后,操作系统将在运行磁盘检测工具之后进行文件替换。新文件(Replacement)和旧文件(Destination)只能是单个文件,不能使用通配符。

  实例:

  ①使用已更新的远程文件替换现有的本地文件,请键入:

  inuse srvmainwindows est.dll e:windows est.dll

  ②如果要一次替换多个文件,可使用批处理命令,比如一次要替换三个文件:

  @echo off

  inuse g:i386 est.dll c:windowssystem32 est.dll /y

  inuse g:i386 est2.dll c:windowssystem32 est2.dll /y

  inuse g:i386 est3.dll c:windowssystem32 est3.dll /y

  shutdown /l /r /y

  其中,“shutdown /l /r /y”的作用是在无需用户干预的情况下注销当前用户并重新启动电脑。

  命令:Recover

  功能:从损坏的磁盘中恢复可读取的信息。

  语法:recover [Drive:][Path] FileName

  参数:直接指要恢复的文件的位置和名称即可,不能使用通配符(* 和 ?),必须指定具体的文件名。如果要快速恢复多个文件,可使用批处理命令来解决。

  实例:要恢复D:Fiction 中的文件 Story.txt文件,请键入:

  recover d: ictionstory.txt

  命令:Tasklist

  功能:显示本地或远程机器上当前运行的进程列表。查看到打开的进程后,就能配合Taskkill命令来结束本地或远程电脑上的进程。

  语法:Tasklist[.exe] [/s Computer] [/u DomainUser [/p Password]] [{/m Module | /svc | /v}] [/fo {TABLE | LIST | CSV}] [/nh] [/fi FilterName [/fi FilterName2 [ ... ]]]

  参数:

  /s Computer——指定远程计算机名称或 IP 地址(不能使用反斜杠,其实它相当于指明路径)。默认值是本地计算机;

  /u DomainUser——以 User 或 DomainUser 指定的用户账户权限运行命令。默认值是当前登录发布命令的计算机用户具有的权限。其中Domain表示工作组,User表示用户名;

  /p Password——指定 /u 参数中指定用户账户的密码;

  /m Module——列出与给定模式名称匹配的加载了 DLL 模块的所有任务。如果未指定模块名称,该选项将显示每个任务加载的所有模块;

  /svc——不间断地列出每个过程的所有服务信息;

  /v:指定显示在输出结果中的详细任务信息。要在没有截断的情况下查看完整的详细输出,请与 /svc 参数一同使用;

  命令:Taskkill

  功能:结束一个或多个任务或进程。可以根据进程 ID 号或进程名来结束进程。

  语法:Taskkill [/s Computer] [/u DomainUserName [/p Password]] {/fi FilterName [{/pid ProcessID | /im ImageName}] | /pid ProcessID | /im ImageName} [/f] [/t]

  参数:/s、/u、/p的意义与 tasklist相同。

  /fi FilterName——指定将要终止或不终止的进程的类型;

  /pid ProcessID——指定将终止的进程的ID号;

  /im ImageName——指定将终止的进程名称,可使用通配符 (?和?);

  /f——指定将强制终止的进程。对于远程进程可忽略此参数,所有远程进程都将被强制终止。

  实例:

  Taskkill /s jsj4 /f /im notepad.exe

  强行终止远程计算机jsj4上已打开的记事本程序。

  在本系列前面的7期文章中,我们掌握了一些Windows 2003中新增加的DOS命令的使用方法。在接下来的两期,我们就通过一些实例看看这些DOS命令的综合运用。在本期中,我们来看看如果让一个程序随另一个程序的启动而启动。一个典型的应用是:让杀毒软件随着网络连接打开而自动运行,关闭网络连接时,杀毒软件自动退出。随时关闭网络连接还有节省网费、免遭攻击的好处。实现方法如下:

  步骤1 确定相程序的位置

  默认情况下,网络连接软件PPPoEWin.exe和江民杀毒软件KvXP.kxp(它的扩展名虽不是.exe或.com,但还是能运行)分别位于 C:Windowssystem32和C:KV2004下。如果你采用拨号上网,启动它的程序是rasphone,位于C:Windowssystem32下。

  步骤2 建立批处理文件

  假设批处理文件名为“myPPPoE.bat”,批处理中包含以下命令行:

  @echo off

  Start c:windowssystem32PPPoEWin

  Start C:KV2004KvXP.kxp

  以后,只要运行这个批处理,网络连接程序打开的同时,江民杀毒软件就会自动打开。

  注意:

  ①KvXP.kxp必须要加上扩展名才能运行,因为它不具有DOS下的可执行文件的扩展名。

  ②如果想让KvXP.kxp随IE启动而运行,只修改上述程序的第2行是不行的,因为Iexplore.exe在C:Program FilesInte.net Explorer目录下,路径中有空格,批处理执行时会报找不到Iexplore.exe的错误,可将批处理修改为:

  @echo off

  Path %path%;C:Program FilesInternet Explorer

  Start Iexplore.exe

  Start C:KV2004KvXP.kxp

  提示:我们还可以让网络连接与杀毒软件同时退出。只需创建一个批处理文件,包含以下内容即可:

  Start taskkill /f /im KvXP.kxp

  Start taskkill /f /im PPPoEWin.exe

原文转自:http://www.ltesting.net