打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
批处理学习4

常用运行命令

 

第一节 批处理文件的编写① 

第二节 批处理文件的编写② 

第三节 批处理文件的编写③ 

 

  现在,先简单介绍几个cmd下很实用的命令。

⑴,Tasklist 显示运行在本地计算机上的所有任务的应用程序,带有过程 ID (PID)。不带参数,显示当前运行的所有进程。

  Tasklist /svc 无间断地列出每个过程的所有服务信息。不能与 /m/v 参数一起使用。 

  Tasklist /v 指定显示在输出结果中的详细任务信息。不能与 /svc/m 参数一起使用。

  Tasklist /m [ModuleName] 指定显示每个过程的模块信息。

指定[ModuleName]模块时,将显示使用此模块的所有过程。没有指定模块时,将显示所有模块的所有过程。不能与 /svc/v 参数一起使用。示例:Tasklist /m ntdll.dll。

⑵,ipconfig 查看网络连接。

  ipconfig /all 显示网络连接中所有适配器的完整 TCP/IP 配置信息。在没有该参数的情况下 ipconfig 只显示 IP 地址、子网掩码和各个适配器的默认网关值。适配器可以代表物理接口(例如安装的网络适配器)或逻辑接口(例如拨号连接)。

  如果出现ip地址冲突,可以尝试运行IPConfig /ReleaseIPConfig /Renew

  /release [adapter]
发送 DHCPRELEASE 消息到 DHCP 服务器,以释放所有适配器(如果未指定适配器)或特定适配器(如果包含了 Adapter 参数)的当前 DHCP 配置并丢弃 IP 地址配置。该参数可以禁用配置为自动获取 IP 地址的适配器的 TCP/IP。要指定适配器名称,请键入使用不带参数的 ipconfig 命令显示的适配器名称。

  /renew [adapter]
更新所有适配器(如果未指定适配器),或特定适配器(如果包含了 Adapter 参数)的 DHCP 配置。该参数仅在具有配置为自动获取 IP 地址的网卡的计算机上可用。要指定适配器名称,请键入使用不带参数的 ipconfig 命令显示的适配器名称。

⑶,systeminfo 显示关于计算机及其操作系统的详细配置信息。包括操作系统配置、安全信息、产品 ID 和硬件属性,如 RAM、磁盘空间和网卡。示例如显示内容示例

  systeminfo|find "物理内存总量" 显示详细配置信息中的物理内存总量。在这里 | 是命令重定向管道符, find命令筛选器。下面将简单介绍管道命令及命令筛选器的详细使用。

 

显示内容示例:

主机名:           HANYEGUXING
OS 名称:          Microsoft Windows XP Professional
OS 版本:          5.1.2600 Service Pack 3 Build 2600
OS 制造商:        Microsoft Corporation
OS 配置:          独立工作站
OS 构件类型:      Uniprocessor Free
注册的所有人:     寒夜孤星
注册的组织:       寒夜孤星
产品 ID:          55274-640-8834005-23667
初始安装日期:     2008-6-21, 18:11:45
系统启动时间:     1 天 6 小时 16 分 49 秒
系统制造商:       PT880_
系统型号:         AWRDACPI
系统类型:         X86-based PC
处理器:           安装了 1 个处理器。
                  [01]: x86 Family 15 Model 1 Stepping 3 GenuineIntel ~1800 Mhz
BIOS 版本:        PT880  - 42302e31
Windows 目录:     J:\WINDOWS
系统目录:         J:\WINDOWS\system32
启动设备:         \Device\HarddiskVolume1
系统区域设置:     zh-cn;中文(中国)
输入法区域设置:   zh-cn;中文(中国)
时区:             暂缺

物理内存总量:     254 MB
可用的物理内存:   47 MB
虚拟内存: 最大值: 2,048 MB
虚拟内存: 可用:   2,005 MB
虚拟内存: 使用中: 43 MB
页面文件位置:     J:\pagefile.sys
域:               WORKGROUP
登录服务器:      
\\HANYEGUXING
修补程序:         安装了 22 个修补程序。
                  [01]: File 1
                  [02]: File 1
                  [03]: File 1
                  [04]: File 1
                  [05]: File 1
                  [06]: File 1
                  [07]: File 1
                  [08]: File 1
                  [09]: File 1
                  [10]: Q147222
                  [11]: KB923689
                  [12]: KB941569
                  [13]: KB898461 - Update
                  [14]: KB936929 - Service Pack
                  [15]: KB942763 - Update
                  [16]: KB950759 - Update
                  [17]: KB950760 - Update
                  [18]: KB950762 - Update
                  [19]: KB951376-v2 - Update
                  [20]: KB951698 - Update
                  [21]: KB951748 - Update
                  [22]: KB951978 - Update
网卡:             安装了 2 个 NIC。
                  [01]: Realtek RTL8139 Family PCI Fast Ethernet NIC
                        连接名:  本地连接 2
                        状态:  媒体连接已中断
                  [02]: Realtek RTL8139 Family PCI Fast Ethernet NIC
                        连接名:  本地连接
                        启用 DHCP: 
                        DHCP 服务器: 255.255.255.255
                        IP 地址
                        [01]: 169.254.233.102

 

⑷,命令重定向操作符(Redirection Operators)及命令筛选器的使用

  1.| 命令重定向管道符
语法:第一条命令 | 第二条命令 [| 第三条命令...]
将第一条命令的结果作为第二条命令的参数来使用。也叫管道符。

多数情况下,筛选器命令与重定向符联合使用。

筛选器命令可以划分、重排以及提取通过的部分信息操作。下表列出 Windows XP 中可用的筛选器命令。

 

 命令 说明
 more 在一个命令提示符窗口中每次显示一个文件的内容或一个命令的输出。
 find 在文件和命令输出中搜索您所指定的字符。
 sort 按字母顺序排列文件和命令输出。

 

在上个示例中, |findsysteminfo 显示的详细配置信息中搜索 "物理内存总量" 并显示。

 

本文开头所讲的命令 Tasklist /m ,在cmd下,由于受窗口限制,而要显示的模块又很多,将使得显示容易缺失内容,即命令提示符窗口不能将目录在一屏内全部显示出来,我们可以使用 Tasklist /m | more ,出现由 Tasklist 命令产生的第一个输出命令提示符窗口,后面跟着 -- More -- 提示。要继续前进到下一个命令提示符窗口,请在键盘上按任意键(除 PAUSE 之外)。要停止命令且不查看详细信息,请按 CTRL+C 键。

 

至于 |sort 的使用,则是用来按字母顺序来排列输出的。具体的,可以对比 systeminfosysteminfo|sort 进行比较,就能发现。

 

  2.>、>> 重定向命令输出
将一条命令或某个程序输出结果的重定向到特定文件中, >>> 的区别在于, > 会清除调原有文件中的内容后写入指定文件,而 >> 只会追加内容到指定文件中,而不会改动其中的内容。

 

示例:

systeminfo>c:1.txt

 

在CMD下运行,就可以在C盘根目录下生成一个1.txt文本,内容就如显示内容示例

 

现在,我们回头看第一节中提到的关于制作一个简单输入法的修复批处理脚本。其中一个重要的问题,就是修复注册表。在批处理中修复注册表有很多方法,常见的有三种:

第一种,直接使用 reg 命令。(有关 reg 命令的详细信息,参阅http://blog.sina.com.cn/s/blog_51a4af870100a4wo.html 。 )需要注意的是实际使用中可能需要关闭或开启命令扩展。

第二种,将正确注册表导出为.reg文件,再由批处理脚本调用他。缺点是运行时需要至少两个文件。

第三种,就是由批处理脚本输出.reg文件,然后再调用他。这种方法虽然比第一种麻烦一点,且编写出的批处理脚本也大一点,但原理很简单,很容易掌握。下面,就详细介绍一下第三种方法。

 

批处理示例11:

……

echo REGEDIT4>30194447.reg

……

echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls]>>30194447.reg>>30194447.reg
echo "C:\\WINDOWS\\system32\\CTFMON.EXE"=dword:00000005>>30194447.reg
echo.>>30194447.reg
echo [HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run]>>30194447.reg
echo "ctfmon.exe"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,00,53,\>>30194447.reg
echo   00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,74,00,\>>30194447.reg
echo   66,00,6d,00,6f,00,6e,00,2e,00,65,00,78,00,65,00,00,00>>30194447.reg
echo.>>30194447.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\SysProcs]>>30194447.reg
echo "ctfmon.exe"=dword:00000000>>30194447.reg
echo.>>30194447.reg

……

pause
start /w regedit /s 30194447.reg
ctfmon.exe
del 30194447.reg

……

 

echo REGEDIT4>30194447.reg ,创建30194447.reg注册表文件。

echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls]>>30194447.reg>>30194447.reg,追加 echo 后面的内容30194447.reg注册表文件。

那么这个内容是怎么得到的呢?将注册表所需要的部分导出,在前面加上echo命令就可以。以下依此照办。当然,也可以用第二节中所讲的VisualBat软件里带的“reg转bat”转换。

 

start /w regedit /s 30194447.regstart 命令,启动单独的“命令提示符”窗口来运行指定程序或命令。 regedit导入注册表文件。 /s 参数使导入时静默,即不通过确认而导入。 

 

  3.< 、>& 、<&
< 从文件中而不是从键盘中读入命令输入。
>& 将一个句柄的输出写入到另一个句柄的输入中。
<& 从一个句柄读取输入并将其写入到另一个句柄输出中。
这些并不常用,也就不多做介绍。

 

下面set 

Set

显示、设置或删除环境变量。如果没有任何参数,set 命令将显示当前环境设置。

 

语法:set [[/a [expression]] [/p [variable=]] string]

 

参数:
/a 将 string 设置成可求值的数字表达式。
/p 将 variable 的值设置成输入行。
variable 指定需要设置或修改的变量。
string 指定要与指定变量关联的字符串。
/? 在命令提示符显示帮助。
注释
⑴,使用“恢复控制台”中的 set 命令具有不同的参数,可从“恢复控制台”中获得。

⑵,使用特殊字符
  字符 < > | & ^ 是特殊命令外壳字符,在字符串中使用时必须位于 escape 字符 (^) 之前或用引号引起来(即,"StringContaining&Symbol")。如果要使用引号将含有特殊字符的字符串引起来,则该引号将被设置成环境变量值的一部分。

⑶,使用环境变量
  使用环境变量可控制某些批处理文件和程序的操作,并可控制 Windows XP 和 MS-DOS 子系统显示和工作的方式。Autoexec.nt 文件中经常使用 set 命令设置环境变量。

⑷,显示当前的环境设置
  当只键入 set 命令时,将显示当前的环境设置。这些设置通常包含用来帮助查找磁盘上程序的 COMSPEC 和 PATH 环境变量。Windows XP 使用的两个其它环境变量是 PROMPT 和 DIRCMD。

⑸,使用参数
  当指定变量和字符串的值时,指定的变量值将被添加到该环境,而且该字符串与该变量关联。如果环境中已经存在该变量,新的字符串值将替代旧的字符串值。

  如果只为 set 命令指定一个变量和一个等号(没有字符串),则与该变量关联的字符串值将被清除(就象变量根本不存在一样)。

⑹,使用 /a
  下表按优先性从高到低的顺序列出了支持 /a 的运算符。

 

 运算符 执行的操作
 < > 分组
 * / % + - 算法
 << >> 逻辑移位
 & 按位“和”运算
 ^ 按位“异或”运算
 | 按位“或”运算
 = *= /= %= += -= &= ^= |= <<= >>= 分配
 , 表达式分隔符

 

  如果使用逻辑 (&& ||) 或模 (%) 运算符,请使用引号将表达式字符串引起来。表达式中的非数字字符串将被视为环境变量名,其值将转化成数字然后才进行处理。如果指定当前环境中没有定义的环境变量名,将会分配零值,允许您对环境变量进行算术运算,而不需要使用 % 找回值。

  如果从命令脚本外的命令行中运行 set /a,则会显示该表达式的最终值。

  数值是指十进制的数字,在前缀加 0× 则表示十六进制数字,加 0 则表示八进制数字。因此,0×2 与 18 相同,也与 022 相同,八进制表示法容易引起混淆。例如,08 和 09 不是有效数字,因为 8 和 9 不是有效的八进制数字。

⑺,使用 /p
  要求有提示字符串。

⑻支持延迟的环境变量扩展
  已经添加延迟的环境变量扩展支持。默认情况下禁用该支持,不过可使用 cmd /v 对其启用或禁用。

⑼,使用命令扩展
  当启用命令扩展(默认)并单独运行 set 时,将显示所有当前的环境变量。如果使用一个值来运行 set,则会显示与该值匹配的变量。

⑽,在批处理文件中使用 set
  创建批处理文件时,可以使用 set 命令创建变量,然后象使用编号变量 %0 到 %9 一样使用这些变量。也可以使用 %0 到 %9 变量作为 set 命令的输入。

⑾,从批处理文件调用 set 变量。
  从批处理文件调用变量值时,必须将该值用百分号(%)括起来。例如,如果批处理程序创建了一个环境变量 BAUD,则可以在命令行中键入 %baud%,将与 BAUD 关联的字符串作为可替换参数使用。

范例:
若要设置名为 TEST^1 的环境变量,请键入:

 

 set testVar=test^^1

 

若要设置名为 TEST&1 的环境变量,请键入:

 

 set testVar=test^&1

 

Set 将变量值设置成等号 (=) 后的内容。如果键入:

 

 set testVar="test^1"

 

将得到如下结果:
testVar="test^1"

要设置名为 AxDir 的环境变量,使字符串 .\(批处理文件所在的当前目录路径)与该变量关联,请键入:

 

MVBOX 组件库注册与反注册中的批处理:

set AxDir=.\

 

然后可以通过用在名称百分号 (%) 将 AxDir 括起,在批处理文件中使用字符串 .\ 。例如,可能在批处理文件中包含以下命令,以显示与 AxDir 环境变量关联的目录内容。

cd %AxDir%

处理此命令时,字符串 .\ 将替代 %AxDir%

还可以在批处理程序中使用 set,将新目录添加到 PATH 环境变量中。例如:

 

批处理示例12:

@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable.
set path=%1;%path%
set

 

当启用命令表达式(默认)并使用一个值来运行 set 时,则会显示与该值匹配的变量。例如,如果在命令提示符键入 set p,将得到如下结果:

 

批处理示例14:

Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0801
ProgramFiles=C:\Program Files
PROMPT=$P$G

 

下面是MVBOX的组件库注册和反注册的批处理脚本。

 

批处理示例15(MVBOX 组件库注册):

@echo off
set AxDir=.\
cd %AxDir%
regsvr32.exe DCDSPFilter.ax
regsvr32.exe VCam.ax
regsvr32.exe dump.ax
regsvr32.exe lame.ax
regsvr32.exe mp3Source.ax
regsvr32.exe InstallDetection.dll
regsvr32.exe id3com.dll
regsvr32.exe %systemroot%\system32\qasf.dll
regsvr32.exe %systemroot%\system32\WMADMOD.DLL
:END

 

批处理示例16(MVBOX 组件库反注册):

@echo off
set AxDir=.\
cd %AxDir%
regsvr32.exe /U DCDSPFilter.ax
regsvr32.exe /U VCam.ax
regsvr32.exe /U dump.ax
regsvr32.exe /U lame.ax
regsvr32.exe /U mp3Source.ax
regsvr32.exe /U mpg4ds32.ax
regsvr32.exe /U InstallDetection.dll
:END

 

有关regsvr32命令的详细使用,请参阅http://blog.sina.com.cn/s/blog_51a4af870100a54u.html 。 

Cd (Chdir)

显示当前目录的名称,或更改当前的文件夹。使用时仅带一个驱动器号(例如,chdir C:),则 chdir 显示当前驱动器名称和文件夹。在不含参数的情况下使用,chdir 显示当前驱动器和目录。更多详细使用请参阅微软的“帮助与支持中心”。 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
批处理各符号的功能
Bat命令学习
dos命令bat文件中的特殊符号意思 12个
if 使用1-比较运算
bash教程摘要
Linux进阶
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服