33 call
批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行
有时有的应用程序用start调用出错的,也可以call调用
-------------------------------------------------------------------------------------------------------------------
34 choice (外部命令)
选择命令
让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234……
win98里是choice.com
win2000pro里没有,可以从win98里拷过来
win2003里是choice.exe
choice /N /C y /T 5 /D y>nul
延时5秒
下面是个 choice 语句的例子
@echo off
rem 以下在win2000pro运行通过,从win98里拷的chioce.com文件
choice /c:abc aaa,bbb,ccc
if errorlevel 3 goto ccc
if %errorlevel%==2 goto bbb
if errorlevel==1 goto aaa
rem 必须先判断数值高的返回码
rem 可以看到 errorlevel
值的判断有3种写法,有时某种写法不好用,可以用另外的写法
rem 直接运行chioce相当于运行choice /c:yn
:aaa
echo aaa
goto end
:bbb
echo bbb
goto end
:ccc
echo ccc
goto end
:end
注释:
choice外部命令在XP中也是没有的.
如果仅需要等待输入做选择条件 ,可用
set /P CHS= [输入 "G" 跳转到G段 或者 输入 "Q" 跳转到Q段]?
if /I "%CHS%"=="G" goto :G
if /I "%CHS%"=="Q" goto :Q
:G
ECHO 已经跳转到G段.
EXIT
:Q
ECHO 已经跳转到Q段.
EXIT
原作者在set命令中简单带过此解释.
-------------------------------------------------------------------------------------------------------------------
35 assoc 和 ftype
文件关联
assoc 设置\'文件扩展名\'关联,关联到\'文件类型\'
ftype 设置\'文件类型\'关联,关联到\'执行程序和参数\'
当你双击一个.txt文件时,windows并不是根据.txt直接判断用 notepad.exe
打开
而是先判断.txt属于 txtfile \'文件类型\'
再调用 txtfile 关联的命令行
txtfile=%SystemRoot%\\system32\\NOTEPAD.EXE %1
可以在"文件夹选项"→"文件类型"里修改这2种关联
assoc #显示所有\'文件扩展名\'关联
assoc .txt #显示.txt代表的\'文件类型\',结果显示
.txt=txtfile
assoc .doc #显示.doc代表的\'文件类型\',结果显示
.doc=Word.Document.8
assoc .exe #显示.exe代表的\'文件类型\',结果显示
.exe=exefile
ftype #显示所有\'文件类型\'关联
ftype exefile #显示exefile类型关联的命令行,结果显示 exefile="%1"
%*
assoc .txt=Word.Document.8
设置.txt为word类型的文档,可以看到.txt文件的图标都变了
assoc .txt=txtfile
恢复.txt的正确关联
ftype exefile="%1" %*
恢复 exefile 的正确关联
如果该关联已经被破坏,可以运行 command.com ,再输入这条命令
-------------------------------------------------------------------------------------------------------------------
36 pushd 和 popd
切换当前目录
@echo off
c: & cd\\ & md mp3 #在 C:\\ 建立 mp3 文件夹
md d:\\mp4 #在 D:\\ 建立 mp4 文件夹
cd /d d:\\mp4 #更改当前目录为 d:\\mp4
pushd c:\\mp3 #保存当前目录,并切换当前目录为
c:\\mp3
popd #恢复当前目录为刚才保存的 d:\\mp4
一般用处不大,在当前目录名不确定时,会有点帮助
-------------------------------------------------------------------------------------------------------------------
37 subst (外部命令)
映射磁盘。
subst z:
\\\\server\\d #这样输入z:就可以访问\\\\server\\d了
subst z: /d #取消该映射
subst #显示目前所有的映射
注释:
就本人现在的知识而言,感觉与 NET USE 命令差不多
不同的是 subst 命令可以虚拟映射本机目录为磁盘.
你可以:
subst K: "C:\program files"
来用K:访问C:\program files (感觉比较无聊 )
下面是XP SP2 [版本 5.1.2600] CMD.exe 对subst的解释:
将路径与驱动器号关联。
SUBST [drive1: [drive2:]path]
SUBST drive1: /D
drive1: 指定要指派路径的虚拟驱动器。
[drive2:]path 指定物理驱动器和要指派给虚拟驱动器的路径。
/D 删除被替换的 (虚拟) 驱动器。
不加任何参数键入 SUBST,可以显示当前虚拟驱动器的清单。
-------------------------------------------------------------------------------------------------------------------
38 xcopy (外部命令)
文件拷贝
xcopy d:\\mp3 e:\\mp3 /s/e/i/y
复制 d:\\mp3 文件夹、所有子文件夹和文件到 e:\\ ,覆盖已有文件
加 /i 表示如果 e:\\ 没有 mp3
文件夹就自动新建一个,否则会有询问
注释:
原作者..............
下面是XP SP2 [版本 5.1.2600] CMD.exe 对 xcopy 的解释:
复制文件和目录树。
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]]
[/V] [/W]
[/C] [/i] [/Q] [/F] [/L] [/G] [/H] [/R] [/T]
[/u]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]
source 指定要复制的文件。
destination 指定新文件的位置和/或名称。
/A 只复制有存档属性集的文件, 但不改变属性。
/M 只复制有存档属性集的文件,并关闭存档属性。
/D:m-d-y 复制在指定日期或指定日期以后更改的文件。如果没有提供日期,
只复制那些源时间比目标时间新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。每一个字符串
必须在文件的单独行中。如果有任何
字符串与要被复制的文件的绝对路径
相符,那个文件将不会得到复制。
例如,指定如 \obj\ 或 .obj 的字符串会排除
目录 obj 下面的所有文件或带有
.obj 扩展名的文件。
/P 创建每个目标文件前提示。
/S 复制目录和子目录,除了空的。
/E 复制目录和子目录,包括空的。与 /S /E
相同。可以用来修改 /T。
/V 验证每个新文件。
/W 提示您在复制前按键。
/C 即使有错误,也继续复制。
/I 如果目标不存在,又在复制一个以上的文件,则假定目标一定是一个目录。
/Q 复制时不显示文件名。
/F 复制时显示完整的源和目标文件名。
/L 显示要复制的文件。
/G 允许将没有经过加密的文件复制到不支持加密的目标。
/H 也复制隐藏和系统文件。
/R 覆盖只读文件。
/T 创建目录结构,但不复制文件。不包括空目录或子目录。/T
/E 包括空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属性。一般的 Xcopy 会重置只读属性。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 复制文件审核设置(隐含 /O)。 现存目标文件。
/-Y 导致提示以确认改写一个现存目标文件。
/Z 用重新启动模式复制网络文件。
命令行开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 改写。
-------------------------------------------------------------------------------------------------------------------
39 一些不常用的内部命令
>& 将一个句柄的输出写入到另一个句柄的输入中
<& 从一个句柄读取输入并将其写入到另一个句柄输出中
shift 命令行传递给批处理的参数不止9个时,用以切换参数
如果命令扩展名被启用,SHIFT 命令支持/n
命令行开关;该命令行开关告诉
命令从第 n 个参数开始移位;n 介于零和八之间。例如:
SHIFT /2
会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和
%1。
color 设置cmd窗口的显示颜色
pormpt 更改命令提示符号,默认都是 盘符:\\路径\\> ,如
c:\\>
-------------------------------------------------------------------------------------------------------------------
40 format (外部命令)
格式化硬盘
format c: /q/u/autotest
/q表示快速格式化,/autotest表示自动格式化,不需要按 Y 确认
/u表示每字节用 F6 覆盖硬盘数据,使其不可用软件恢复
format c: /c格式化C盘,并检测坏道
-------------------------------------------------------------------------------------------------------------------
41 fdisk (外部命令)
硬盘分区
win2000不带该命令
win98里的fdisk不支持80G以上大硬盘,winme里的支持
fdisk/mbr
重建硬盘分区表,一般用于清除引导区病毒、还原精灵
注意使用该命令不能从硬盘启动,必须软驱或光驱启动后直接运行
-------------------------------------------------------------------------------------------------------------------
42 ping (外部命令)
ping -l 65500 -t 192.168.1.200
不停的向192.168.1.200计算机发送大小为65500byte的数据包(早期破坏手段)
ping -n 10 127.0.0.1>nul
ping自己10次,可用于批处理延时10秒(经典延时手段)
-------------------------------------------------------------------------------------------------------------------
43 net
许多 Windows NT 网络命令以 net 开始。这些 net
命令有一些公共属性:
通过键入 net /? 可查阅所有可用的 net 命令。
通过键入 net help 命令可在命令行中获得 net
命令的语法帮助。例如,要得到 net accounts 命令的帮助,请键入 net
help accounts。
所有 net 命令接受选项 / yes 和 /no(可缩写为 / y 和 /n )。/ y
对命令产生的任何交
互提示自动回答“是”,/n 回答“否”。例如,net stop server
通常提示确认是否根据服
务器服务结束所有服务,net stop server /y
自动回答“是”并关闭服务器服务。
Net Accounts
更新用户帐号数据库、更改密码及所有帐号的登录要求。必须要在更改帐号参数的计算机上
运行网络登录服务。
net accounts [/forcelogoff:{minutes no}] [/minpwlen:length]
[/maxpwage:{days
unlimited}] [/minpwage:days] [/uniquepw:number] [/domain]
net accounts [/sync] [/domain]
参数
无
键入不带参数的 net
accounts,将显示当前密码设置、登录时限及域信息。
/forcelogoff:{minutes no}
设置当用户帐号或有效登录时间过期时,结束用户和服务器会话前的等待时间。no
选项禁止
强行注销。该参数的默认设置为 no。
指定 /forcelogoff:minutes 之后,Windows NT 在其强制用户退出网络
minutes 分钟之前
,将给用户发出警报。如果还有打开的文件,Windows NT 将警告用户。如果
minutes 小于
两分钟,Windows NT 警告用户立即从网络注销。
/minpwlen:length
设置用户帐号密码的最少字符数。允许范围是 0-14,默认值为 6。
/maxpwage:{days unlimited}
设置用户帐号密码有效的最大天数。unlimited 不设置最大天数。/maxpwage
选项的天数必
须大于 /minpwage。允许范围是 1-49,710 天 (unlimited)。默认值为 90
天。
/minpwage:days
设置用户必须保持原密码的最小天数。 0 值不设置最小时间。允许范围是
0-49,710 天,默认值为 0 天。
/uniquepw:number
要求用户更改密码时,必须在经过 number
次后,才能重复使用与之相同的密码。允许范围是 0-8。默认值为
5。
/domain
在当前域的主域控制器上执行该操作。否则只在本地计算机执行操作。
该参数仅用于 Windows NT Server 域中的 Windows NT Workstation
计算机,Windows NTServer 计算机默认为在主域控制器执行操作。
/sync
当用于主域控制器时,该命令使域中所有备份域控制器同步;当用于备份域控制器时,该命
令仅使该备份域控制器与主域控制器同步。该命令仅适用于 Windows NT
Server 域成员的计
算机。
Net Computer
从域数据库中添加或删除计算机。该命令仅在运行 Windows NT Server
的计算机上可用。
net computer computername {/add /del}
参数
computername
指定要添加到域或从域中删除的计算机。
/add
将指定计算机添加到域。
/del
将指定计算机从域中删除。
Net Config
显示当前运行的可配置服务,或显示并更改某项服务的设置。
net config [service [options]]
参数
无
键入不带参数的 net config 将显示可配置服务的列表。
service
通过 net config 命令进行配置的服务(server 或 workstation)。
options
服务的特定选项。完整语法请参阅 net config server 或 net config
workstation。
Net Config Server
运行服务时显示或更改服务器的服务设置。
net config server [/autodisconnect:time] [/srvcomment:"text "]
[/hidden:{yes no}]
参数
无
键入不带参数的 net config
server,将显示服务器服务的当前配置。
/autodisconnect:time
设置断开前用户会话闲置的最大时间值。可以指定
-1,表示永不断开连接。允许范围是 -1
-65535 分钟,默认值是 15 分钟。
/srvcomment:"text "
为服务器添加注释,可以通过 net view
命令在屏幕上显示所加注释。注释最多可达 48 个
字符,文字要用引号引住。
/hidden:{yes no}
指定服务器的计算机名是否出现在服务器列表中。请注意隐含某个服务器并不改变该服务器
的权限。默认为 no。
Net Config Workstation
服务运行时,显示或更改工作站各项服务的设置。
net config workstation [/charcount:bytes] [/chartime:msec]
[/charwait:sec]
参数
无
键入不带参数的 net config workstation
将显示本地计算机的当前配置。
/charcount:bytes
指定 Windows NT
在将数据发送到通讯设备之前收集的数据量。如果同时设置 /chartime:msec
参数,
Windows NT 按首先满足条件的选项运行。允许范围是 0-65535
字节,默认值是 16 字节。
/chartime:msec
指定 Windows NT
在将数据发送到通讯设备之前收集数据的时间。如果同时设置
/charcoun
t:bytes 参数,Windows NT 按首先满足条件的选项运行。允许范围是
0-65535000 毫秒,默 认值是 250 毫秒。
/charwait:sec
设置 Windows NT 等待通讯设备变为可用的时间。允许的范围是 0-65535
秒,默认值是 36
00 秒。