DOS系列之批处理命令的学习笔记

来源:百度文库 编辑:神马文学网 时间:2024/04/24 00:16:27
1 echo 和 @
回显控制命令

@      #关闭单行回显
echo off       #从下一行开始关闭回显
@echo off        #从本行开始关闭回显。一般批处理第一行都是这个
echo on        #从下一行开始打开回显
echo       #显示当前是 echo off 状态还是 echo on 状态
echo.       #输出一个"回车换行",一般就是指空白行
echo hello world        #输出hello world

"关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果
批处理开始和结束时,系统都会自动打开回显

-------------------------------------------------------------------------------------------------------------------
2 errorlevel
程序返回码

echo %errorlevel%
每个命令运行结束,可以用这个命令行格式查看返回码
用于判断刚才的命令是否执行成功
默认值为0,一般命令执行出错会设 errorlevel 为1
-------------------------------------------------------------------------------------------------------------------
3 dir
显示目录中的文件和子目录列表

dir        #显示当前目录中的文件和子目录
dir /a        #显示当前目录中的文件和子目录,包括隐藏文件和系统文件
dir c: /a:d        #显示 C 盘当前目录中的目录
dir c:\\ /a:-d        #显示 C 盘根目录中的文件
dir d:\\mp3 /b/p        #逐屏显示 d:\\mp3 目录里的文件,只显示文件名,不显示时间和大小

dir *.exe /s
显示当前目录和子目录里所有的.exe文件其中 * 是通配符,
代表所有的文件名,还一个通配符 ? 代表一个任意字母或汉字
如 c*.* 代表以 c 开头的所有文件?.exe 代表所有文件名是一个字母的.exe文件

如果指定的目录或文件不存在,将返回 errorlevel 为1

每个文件夹的 dir 输出都会有2个子目录 . 和 ..
. 代表当前目录.. 代表当前目录的上级目录
dir .        #显示当前目录中的文件和子目录
dir ..        #显示当前目录的上级目录中的文件和子目录

其它参数可参考 dir /?
-------------------------------------------------------------------------------------------------------------------
4 cd
更改当前目录

cd mp3       #进入当前目录中的mp3 目录
cd .. #进入当前目录中的上级目录
cd\\      #进入根目录
cd #显示当前目录
cd /d d:\\mp3        #可以同时更改盘符和目录

cd\\"Documents and Settings"\\All users
文件名带空格,可以不加引号
建议加上引号,因为有的时候不加引号会运行出错,如登录脚本

如果更改到的目录不存在,则出错返回 errorlevel=1
-------------------------------------------------------------------------------------------------------------------
5 md
创建目录

md abc       #在当前目录里建立子目录 abc
md d:\\a\\b\\c        #如果 d:\\a 不存在,将会自动创建
-------------------------------------------------------------------------------------------------------------------
6 rd
删除目录

rd abc      #删除当前目录里的 abc 子目录,要求为空目录
rd /s/q d:\\temp        #删除 d:\\temp 文件夹及其子文件夹和文件,不需要按 Y 确认
-------------------------------------------------------------------------------------------------------------------
7 del
删除文件

del d:\\test.txt        #删除指定文件,不能是隐藏、系统、只读文件

del *.* 
删除当前目录里的所有文件,不包括隐藏、系统、只读文件,要求按 Y 确认

del /q/a/f d:\\temp\\*.*
删除 d:\\temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

del /q/a/f/s d:\\temp\\*.*
删除 d:\\temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录
-------------------------------------------------------------------------------------------------------------------
8 ren
文件重命名

ren 1.txt 2.bak      #把 1.txt 更名为 2.bak
ren *.txt *.ini #把当前目录里所有.txt文件改成.ini文件
ren d:\\temp tmp        #支持对文件夹的重命名
-------------------------------------------------------------------------------------------------------------------
9 cls
清屏
-------------------------------------------------------------------------------------------------------------------
10 type
显示文件内容

type c:\\boot.ini        #显示指定文件的内容,程序文件一般会显示乱码
type *.txt        #显示当前目录里所有.txt文件的内容
-------------------------------------------------------------------------------------------------------------------
11 copy
拷贝文件

copy c:\\test.txt d:\\
复制 c:\\test.txt 文件到 d:\\

copy c:\\test.txt d:\\test.bak
复制 c:\\test.txt 文件到 d:\\ ,并重命名为 test.bak

copy c:\\*.*
复制 c:\\ 所有文件到当前目录,不包括隐藏文件和系统文件
不指定目标路径,则默认目标路径为当前目录

copy con test.txt
从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件
con代表屏幕,prn代表打印机,nul代表空设备

copy 1.txt + 2.txt 3.txt
合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件
如果不指定 3.txt ,则保存到 1.txt

copy test.txt +
复制文件到自己,实际上是修改了文件日期


COPY命令的技巧集成

目前,各种能够完成copy命令的工具软件层出不穷,许多人在操作时都已习惯了用pctools之类的工具来代替copy命令。但是copy命令的优势是任何软件都替代不了的。因为它是一个内部命令,只要计算机能够启动,它便可以运行,不需要任何软件支持。因此,熟练掌握copy命令是更加有效使用计算机的基本功。在执行copy的帮助命令copy/?时,将会得到copy命令格式的英文说明。

copy〈盘符〉[〈路径〉]〈源文件名〉[/A|/B][+〈源文件名〉[/A|/B][+...]][〈盘符〉][〈路径〉][〈目标文件名〉[/A|/B]][/V][/Y|/-Y]

其中/A为ASCII文本,即在拷贝文件时拷贝到第一个CTRL-Z(EOF)为止。

/B为二进制文件,即在拷贝时对CTRL-Z(EOF)象处理其它字符一样。

/V拷贝的同时并进行校验。

/Y在拷贝时 若遇同名文件可直接覆盖。

/-Y在拷贝时

若遇同名文件时,询问是否覆盖。

copy命令的选择项符合DOS命令的基本规则,巧妙地选用不同参数并结合通配符"*"或"?",将会使完成各种copy命令的操作更加方便。以下是copy命令的几种基本运用。所有命令举例都假设在当前路径下进行。

一、文件复制 这是copy命令的最常见用途。如果文件同名则必不在同一目录中,如果 不同名则可在同一目录中建立一个新的文件。

二、文件合并: copy文件名1+文件名2+...新文件名

此法多用于文本说明书、文本源程序等文本格式的文件合并。如果有新文件名则将所有要合并的文件合并起来建立一个新文件,如果没有新文件名则将所有要合并的文件合并起来建立在第一个文件中。

对于非文本格式的文件合并必须在第一个文件名之后加上/B参数。

例如:copy*.wps/b new.wps

三、文件的屏幕显示

(1)文本文件的显示 copy*.txt con

在实际工作中往往需要对某一类文本文件进行显示。而type显示命令只能单个文件显示,如果要连续显示多个同类文件,使用copy命令则更为方便。

(2)WPS文件的显示copy*.wps/b con

如果仅仅为了查看WPS文件的内容,则不需要进入WPS,只需要在DOS状态下,键入上述命令便可找到所需文件。

四、编辑简单的文本文件:copy con要编辑的文件名

对于简单的文本(如autoexec.bat)使用其它编辑工具,反倒显得麻烦。使用上述命令,即可进行文件编辑,当按F6键后,再回车便可以在磁盘上建立该文本文件。

五、充当打字机:copy con prn

在日常生活中,经常会遇到一些文稿内容简单却又急需形成书面文字的材料。用上述命令,即可进行文稿编辑,当按F6键后,再次回车。既直接把信息送往打印机,而不在磁盘上留下任何痕迹。用此方法还可以测试打印机是否联机。

六、进行键盘打字练习:copy con>con

如果仅仅为了键盘练习,而不想有任何保留,在DOS状态提示下最多可写127个字符,一旦回车,便会显示Bad command or file name信息,十分不便。如果使用上述命令,则可以无所顾及的进行练习,直到按F6再回车或按CTRL-C终止。

七、删除文件使其不可恢复:copy nul需要删除的文件名

使用DEL命令对文件进行删除后,用PCTOOLS工具软件或UNDelete命令,可以使被删除的文件得到恢复。对重要文件的删除,使用上述命令后,用任何工具无法恢复,从而加强了被 删文件的保密性。

八、更改文件的建立日期和时间:copy需要改期的文件名+,,

为了避免对一些应用系统文件的误删除,往往把文件建立的日期置为统一日期,先用DATE和TIME命令将系统日期定为所需日期和时间,然后再用上述命令,即可改文件的建立日期和时间。此命令只适用单个文件修改,而不能用通配符"*"进行批量修改。否则,将删除批量中的第一个文件。

九、文件打印:copy文件名prn

多用于对文本文件的直接打印。

十、单驱动器的文件复制:如果仅仅只有单驱动器,或者出于某种原因只能使用单驱动器进行的文件复制,那么首先在COMS中,只定义所用的单驱动器类型(如:A盘为5 1/4 1.2M或3 1/2 1.44MB盘为NONE)然后用copy a:文件名b:的命令,并按照屏幕提示插取磁盘,即可完成单驱动器的文件复制。
-------------------------------------------------------------------------------------------------------------------
12 title
设置cmd窗口的标题

title 新标题        #可以看到cmd窗口的标题栏变了
-------------------------------------------------------------------------------------------------------------------
13 ver
显示系统版本
-------------------------------------------------------------------------------------------------------------------
14 label 和 vol
设置卷标
vol       #显示卷标
label       #显示卷标,同时提示输入新卷标
label c:system        #设置C盘的卷标为 system
-------------------------------------------------------------------------------------------------------------------
15 pause
暂停命令

运行该命令时,将显示下面的消息:
请按任意键继续 . . .

一般用于看清楚屏幕上显示的内容
-------------------------------------------------------------------------------------------------------------------
16 rem 和 ::
注释命令

注释行不执行操作
-------------------------------------------------------------------------------------------------------------------
17 date 和 time
日期和时间

date        #显示当前日期,并提示输入新日期,按"回车"略过输入
date/t        #只显示当前日期,不提示输入新日期
time        #显示当前时间,并提示输入新时间,按"回车"略过输入
time/t        #只显示当前时间,不提示输入新时间
-------------------------------------------------------------------------------------------------------------------
18 goto 和 :
跳转命令

:label       #行首为:表示该行是标签行,标签行不执行操作
goto label        #跳转到指定的标签那一行

注意:
Microsoft Windows XP [版本 5.1.2600]
GOTO 和 : 的跳跃性受bat脚本"语句先后顺序"限制.

goto label 句,以下的语句不被执行!

但是!GOTO 到 指定的 :label 后,
如果此 :label 模块中没有其他GOTO指示、中断或结束语句,
则此 :label 模块后的任何命令行包括其他没有指定跳转的 :label 段都将将继续执行!
新手许会因此而造成脚本的死循环!

例1---------------------------
cls

IF EXIST C:\*.* GOTO 1
IF EXIST D:\*.* GOTO 2

: 1
ECHO 条件1成立正在执行:1

: 2
ECHO 条件2成立正在执行:2

: 3
ECHO 条件3成立正在执行:3

例2------------------------------

cls

IF EXIST C:\*.* GOTO 1
IF EXIST D:\*.* GOTO 2

: 2
ECHO 条件2成立正在执行:2

: 1
ECHO 条件1成立正在执行:1

: 3
ECHO 条件3成立正在执行:3

例3------------------------------

cls

IF EXIST C:\*.* GOTO 1
IF EXIST D:\*.* GOTO 2

: 3
ECHO 条件3成立正在执行:3

: 2
ECHO 条件2成立正在执行:2

: 1
ECHO 条件1成立正在执行:1

------------------------------
3例的结果是不同的.
4.死循环例:
------------------------------
cls

: 1
ECHO 条件1成立正在执行:1

: 2
ECHO 条件2成立正在执行:2

: 3
ECHO 条件3成立正在执行:3


IF EXIST C:\*.* GOTO 1
IF EXIST D:\*.* GOTO 2
-------------------------------------
此 死循环例 脚本机器配置不高尽量不要测试. 

-------------------------------------------------------------------------------------------------------------------(待续)
19 find (外部命令)
查找命令

find "abc" c:\\test.txt在 c:\\test.txt
文件里查找含 abc 字符串的行如果找不到,将设 errorlevel 返回码为1

find /i "abc" c:\\test.txt
查找含 abc 的行,忽略大小写

find /c "abc" c:\\test.txt
显示含 abc 的行的行数
-------------------------------------------------------------------------------------------------------------------

20 more (外部命令)
逐屏显示


more c:\\test.txt    #逐屏显示 c:\\test.txt 的文件内容


21 tree
显示目录结构

tree d:\\        #显示D盘的文件目录结构

-------------------------------------------------------------------------------------------------------------------
22 &
顺序执行多条命令,而不管命令是否执行成功

c: & cd\\ & dir /w
相当于把下面3行命令写到1行去了
c:
cd\\
dir /w

-------------------------------------------------------------------------------------------------------------------
23 &&
顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令

f: && cd\\ && dir >c:\\test.txt
注意如果f盘不存在,那么后面2条命令将不会执行

find "ok" c:\\test.txt && echo 成功
如果找到了"ok"字样,就显示"成功",找不到就不显示

注释:
&& 前命令执行失败,仅其后"一条命令"将不被执行.
& 不论前条结果,后条命令继续执行.相当于换行.
当 && 与 & 出现在同一条命令行中时, &&前执行失败,则仅其后条不被执行,&后继续执行.

tskill taskmgr && echo 第一条 & echo 第二条

如果结束"进程管理器"成功将会显示:
第一条
第二条

如果结束"进程管理器"失败将会显示:
找不到进程: taskmgr
第二条
-------------------------------------------------------------------------------------------------------------------
24 ||
顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令

f: || e:
如果有f盘就不进入e盘

find "ok" c:\\test.txt || echo 不成功
如果找不到"ok"字样,就显示"不成功",找到了就不显示

-------------------------------------------------------------------------------------------------------------------
25 |
管道命令

前一个命令的执行结果输出到后一个命令

dir *.* /s/a | find /c ".exe"
管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令
该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数

type c:\\test.txt|more
这个和 more c:\\test.txt 的效果是一样的

小窍门

当有的命令不支持 /Y参数必须手动输入 Y 时 可以这样写:

echo y|XXXX XX XX XX

)

-------------------------------------------------------------------------------------------------------------------
26 > 和 >>
输出重定向命令

> 清除文件中原有的内容后再写入

>> 追加内容到文件末尾,而不会清除原有的内容
主要将本来显示在屏幕上的内容输出到指定文件中
指定文件如果不存在,则自动生成该文件

echo hello world>c:\\test.txt
生成c:\\test.txt文件,内容为hello world
这个格式在批处理文件里用得很多,可以生成 .reg .bat .vbs 等临时文件

type c:\\test.txt >prn
屏幕上不显示文件内容,转向输出到打印机

echo hello world>con
在屏幕上显示hello world,实际上所有输出都是默认 >con 的

copy c:\\test.txt f: >nul
拷贝文件,并且不显示"文件复制成功"的提示信息,
但如果f盘不存在,还是会显示出错信息

copy c:\\test.txt f: >nul 2>nul
不显示"文件复制成功"的提示信息,
并且f盘不存在的话,也不显示错误提示信息

echo ^^W ^> ^W>c:\\test.txt
生成的文件内容为 ^W > W
注意 ^ 和 > 是控制命令,要把它们输出到文件,必须在前面加个 ^ 符号

-------------------------------------------------------------------------------------------------------------------
27 <
从文件中获得输入信息,而不是从屏幕上

一般用于 date time label 等需要等待输入的命令
@echo off
echo 2005-05-01>temp.txt
date del temp.txt
这样就可以不等待输入直接修改当前日期

-------------------------------------------------------------------------------------------------------------------
28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
命令行传递给批处理的参数

%0 批处理文件本身
%1 第一个参数
%9 第九个参数
%* 从第一个参数开始的所有参数

在C盘根目录新建test.bat,内容如下:

@echo off
echo %0
echo %1
echo %2
echo %*

运行cmd,输入 c:\\test.bat "/a" /b /c /d
可以看出每个参数的含意

修改test.bat内容如下

@echo off
echo %1
echo %~1
echo %0
echo %~f0
echo %~d0
echo %~p0
echo %~n0
echo %~x0
echo %~s0
echo %~a0
echo %~t0
echo %~z0

再运行cmd,输入 c:\\test.bat "/a" /b /c /d

结果为:
"/a"
/a
c:\\test.bat
c:\test.bat
c:
\
test
.bat
c:\test.bat
--a------
2006-11-21 19:13
136

可以参照 call/? 或 for/? 看出每个参数的含意
注意这里可以对文件进行日期比较和大小比较

echo load "%%1" "%%2">c:\\test.txt
生成的文件内容为 load "%1" "%2"
批处理文件里,用这个格式把命令行参数输出到文件

-------------------------------------------------------------------------------------------------------------------
29 if
判断命令

if "%1"=="/a" echo 第一个参数是/a

if /i "%1" equ "/a" echo 第一个参数是/a
/i 表示不区分大小写,equ 和 == 是一样的,其它运算符参见 if/?

if exist c:\\test.bat echo 存在c:\\test.bat文件


if not exist c:\\windows (
   echo 不存在c:\\windows文件夹
   rem 有多条命令可用小括号括起来,称为"复合语句"
   rem 行前的空格是为了看起来条理清楚
   )


if exist c:\\test.bat (
   echo 存在c:\\test.bat  
   ) else (
   echo 不存在c:\\test.bat
   rem else表示"否则",判断结果为假时执行其后的命令
   )

-------------------------------------------------------------------------------------------------------------------

30 setlocal 和 endlocal
设置"命令扩展名"和"延缓环境变量扩充"

SETLOCAL ENABLEEXTENSIONS      #启用"命令扩展名"
SETLOCAL DISABLEEXTENSIONS      #停用"命令扩展名"
SETLOCAL ENABLEDELAYEDEXPANSION   #启用"延缓环境变量扩充"
SETLOCAL DISABLEDELAYEDEXPANSION   #停用"延缓环境变量扩充"
ENDLOCAL               #恢复到使用SETLOCAL语句以前的状态

"命令扩展名"默认为启用
"延缓环境变量扩充"默认为停用
批处理结束系统会自动恢复默认值

可以修改注册表以禁用"命令扩展名",详见 cmd /? 。
所以用到"命令扩展名"的程序,建议在开头和结尾加上
SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 语句,
以确保程序能在其它系统上正确运行

"延缓环境变量扩充"主要用于 if 和 for 的符合语句,
在 set 的说明里有其实用例程

-------------------------------------------------------------------------------------------------------------------
31 set
设置变量

引用变量可在变量名前后加 % ,即 %变量名%

set          #显示目前所有可用的变量,包括系统变量和自定义的变量
echo %SystemDrive%   #显示系统盘盘符。系统变量可以直接引用
set p         #显示所有以p开头的变量,要是一个也没有就设errorlevel=1
set p=aa1bb1aa2bb2   #设置变量p,并赋值为 = 后面的字符串,即aa1bb1aa2bb2
echo %p%        #显示变量p代表的字符串,即aa1bb1aa2bb2
echo %p:~6%      #显示变量p中第6个字符以后的所有字符,即aa2bb2
echo %p:~6,3%     #显示第6个字符以后的3个字符,即aa2
echo %p:~0,3%     #显示前3个字符,即aa1
echo %p:~-2%      #显示最后面的2个字符,即b2
echo %p:~0,-2%     #显示除了最后2个字符以外的其它字符,即aa1bb1aa2b
echo %p:aa=c%     #用c替换变量p中所有的aa,即显示c1bb1c2bb2
echo %p:aa=%      #将变量p中的所有aa字符串置换为空,即显示1bb12bb2
echo %p:*bb=c%     #第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2
set p=%p:*bb=c%    #设置变量p,赋值为 %p:*bb=c% ,即c1aa2bb2
set /a p=39      #设置p为数值型变量,值为39
set /a p=39/10     #支持运算符,有小数时用去尾法,39/10=3.9,去尾得3,p=3
set /a p=p/10     #用 /a 参数时,在 = 后面的变量可以不加%直接引用
set /a p="1&0"     #"与"运算,要加引号。其它支持的运算符参见set/?
set p=         #取消p变量

set /p p=请输入
屏幕上显示"请输入",并会将输入的字符串赋值给变量p
注意这条可以用来取代 choice 命令

注意变量在 if 和 for 的复合语句里是一次性全部替换的,如

@echo off
set p=aaa
if %p%==aaa (
  echo %p%
  set p=bbb
  echo %p%
  )

结果将显示
aaa
aaa

因为在读取 if 语句时已经将所有 %p% 替换为aaa
这里的"替换",在 /? 帮助里就是指"扩充"、"环境变量扩充"
可以启用"延缓环境变量扩充",用 ! 来引用变量,即 !变量名!

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set p=aaa
if %p%==aaa (
  echo %p%
  set p=bbb
  echo !p!
  )
ENDLOCAL

结果将显示
aaa
bbb

还有几个动态变量,运行 set 看不到
%CD%         #代表当前目录的字符串
%DATE%        #当前日期
%TIME%        #当前时间
%RANDOM%       #随机整数,介于0~32767
%ERRORLEVEL%     #当前 ERRORLEVEL 值
%CMDEXTVERSION%    #当前命令处理器扩展名版本号
%CMDCMDLINE%     #调用命令处理器的原始命令行

可以用echo命令查看每个变量值,如 echo %time%
注意 %time% 精确到毫秒,在批处理需要延时处理时可以用到

-------------------------------------------------------------------------------------------------------------------
32 start
批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令

start explorer d:\\
调用图形界面打开D盘

@echo off
cd /d %~dp0 :: %~dp0 代表本文件所在盘符和路径,此例中本批处理需与劲舞团.reg、patcher.exe在同一文件夹
regedit /s 劲舞团.reg
start patcher.exe

不加 start 命令的话,"劲舞团"运行时,后面会有个黑乎乎的cmd窗口
-------------------------------------------------------------------------------------------------------------------

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 秒。 

Net Continue 

重新激活挂起的服务。 
net continue service 
参数 
service 
能够继续运行的服务,包括: 
file server for macintosh(该服务仅限于 Windows NT Server), ftp publishing service, lpdsvc, net logon,network dde,
network dde dsdm,nt lm security support provider,remoteboot(该服务仅限于 Windows NT Server), 
remote access server, schedule,server,simple tcp/ip services 及 workstation 。 


Net File 

显示某服务器上所有打开的共享文件名及锁定文件数。该命令也可以关闭个别文件并取消文 件锁定。 
net file [id [/close]] 
参数 
无 
键入不带参数的 net file 可获得服务器上打开文件的列表。 
id 
文件标识号。 
/close 
关闭打开的文件并释放锁定记录。请从共享文件的服务器中键入该命令。 

Net Group 

在 Windows NT Server 域中添加、显示或更改全局组。该命令仅在 Windows NT Server 域中可用。 
net group [groupname [/comment:"text "]] [/domain] 
net group groupname {/add [/comment:"text "] /delete} [/domain] 
net group groupname username [ ...] {/add /delete} [/domain] 
参数 
无 
键入不带参数的 net group 可以显示服务器名称及服务器的组名称。 
groupname 
要添加、扩展或删除的组。仅提供某个组名便可查看组中的用户列表。 
/comment:"text " 
为新建组或现有组添加注释。注释最多可以是 48 个字符,并用引号将注释文字引住。 
/domain 
在当前域的主域控制器中执行该操作,否则在本地计算机上执行操作。 
该参数仅用于作为 Windows NT Server 域成员的 Windows NT Workstation 计算机。Windows NT Server 计算机默认为在主域控制器中操作。 
username[ ...] 
列表显示要添加到组或从组中删除的一个或多个用户。使用空格分隔多个用户名称项。 
/add 
添加组或在组中添加用户名。必须使用该命令为添加到组中的用户建立帐号。 
/delete 
删除组或从组中删除用户名。 

Net Help 

提供网络命令列表及帮助主题,或提供指定命令或主题的帮助。可用网络命令列于 N 下面的 
“命令参考”中“命令”窗口内。 
net help [command] 
net command {/help /?} 
参数 
无 
键入不带参数的 net help 显示能够获得帮助的命令列表和帮助主题。 
command 
需要其帮助的命令,不要将 net 作为 command 的一部分。 
/help 
提供显示帮助文本方式选择。 
/? 
显示命令的正确语法。 

Net Helpmsg 

提供 Windows NT 错误信息的帮助。 
net helpmsg message# 
参数 
message# 
需要其帮助的 Windows NT 消息的四位代码。 

Net Localgroup 

添加、显示或更改本地组。 
net localgroup [groupname [/comment:"text "]] [/domain] 
net localgroup groupname {/add [/comment:"text "] /delete} [/domain] 
net localgroup groupname name [ ...] {/add /delete} [/domain] 
参数 
无 
键入不带参数的 net localgroup 将显示服务器名称和计算机的本地组名称。 
groupname 
要添加、扩充或删除的本地组名称。只提供 groupname 即可查看用户列表或本地组中的全局 
组。 
/comment: "text " 
为新建或现有组添加注释。注释文字的最大长度是 48 个字符,并用引号引住。 
/domain 
在当前域的主域控制器中执行操作,否则仅在本地计算机上执行操作。 
该参数仅应用于 Windows NT Server 域中的 Windows NT Workstation 计算机。Windows NT Server 计算机默认为在主域控制器中操作。 
name [ ...] 
列出要添加到本地组或从本地组中删除的一个或多个用户名或组名,多个用户名或组名之间 
以空格分隔。可以是本地用户、其他域用户或全局组,但不能是其他本地组。如果是其他域 
的用户,要在用户名前加域名(例如,SALESRALPHR)。 
/add 
将全局组名或用户名添加到本地组中。在使用该命令将用户或全局组添加到本地组之前,必 
须为其建立帐号。 
/delete 
从本地组中删除组名或用户名。 

Net Name 

添加或删除消息名(有时也称别名),或显示计算机接收消息的名称列表。要使用 net name 命令,计算机中必须运行信使服务。 
net name [name [/add /delete]] 
参数 
无 
键入不带参数的 net name 将列出当前使用的名称。 
name 
指定接收消息的名称。名称最多为 15 个字符。 
/add 
将名称添加到计算机中。 /add 是可选项,键入 net name name 与键入 net name name /add 相同。 
/delete 
从计算机中删除名称。 

Net Pause 

暂停正在运行的服务。 
net pause service 
参数 
service 
指下列服务:
file server for macintosh(仅限于 Windows NT Server)、ftp publishing service、lpdsvc、net logon、
network dde、network dde dsdm、nt lm security support provider、remoteboot(仅限于 Windows NT Server)、
remote access server、schedule、server、simple tcp/ip services 或 workstation 。 

Net Print 

显示或控制打印作业及打印队列。 
net print computername sharename 
net print [computername ] job# [/hold /release /delete] 
参数 
computername 
共享打印机队列的计算机名。 
sharename 
打印队列名称。当包含 computername 与 sharename 时,使用反斜杠 () 将它们分开。 
job# 
在打印机队列中分配给打印作业的标识号。有一个或多个打印机队列的计算机为每个打印作 
业分配唯一标识号。如果某个作业号用于共享打印机队列中,则不能指定给其他作业,也不 
能分配给其他打印机队列中的作业。 
/hold 
使用 job# 时,在打印机队列中使打印作业等待。打印作业停留在打印机队列中,并且其他 
打印作业只能等到释放该作业之后才能进入。 
/release 
释放保留的打印作业。 
/delete 
从打印机队列中删除打印作业。 

Net Send 

向网络的其他用户、计算机或通信名发送消息。要接收消息必须运行信使服务。 
net send {name * /domain[:name] /users} message 
参数 
name 
要接收发送消息的用户名、计算机名或通信名。如果计算机名包含空字符,则要将其用引号 
(" ") 引住。 

将消息发送到组中所有名称。 
/domain[:name] 
将消息发送到计算机域中的所有名称。如果指定 name,则消息将发送到指定域或组中的所有 
名称。 
/users 
将消息发送到与服务器连接的所有用户。 
message 
作为消息发送的文本。 

Net Session 

列出或断开本地计算机和与之连接的客户端的会话。 
net session [computername] [/delete] 
参数 
无 
键入不带参数的 net session 可以显示所有与本地计算机的会话的信息。 
computername 
标识要列出或断开会话的计算机。 
/delete 
结束与 computername 计算机会话并关闭本次会话期间计算机的所有打开文件。如果省略 
computername 参数,将取消与本地计算机的所有会话。 

Net Share 

创建、删除或显示共享资源。 
net share sharename 
net share sharename=drive:path [/users:number /unlimited] [/remark:"text"] 
net share sharename [/users:number unlimited] [/remark:"text"] 
net share {sharename drive:path} /delete 
参数 
无 
键入不带参数的 net share 将显示本地计算机上所有共享资源的信息。 
sharename 
是共享资源的网络名称。键入带 sharename 的 net share 命令,只显示该共享信息。 
drive:path 
指定共享目录的绝对路径。 
/users:number 
设置可同时访问共享资源的最大用户数。 
/unlimited 
不限制同时访问共享资源的用户数。 
/remark:"text " 
添加关于资源的注释,注释文字用引号引住。 
/delete 
停止共享资源。 

Net Start 

启动服务,或显示已启动服务的列表。如果服务名是两个或两个以上的词,如 Net Logon 或 
Computer Browser,则必须用引号 (") 引住。. 
net start [service] 
参数 
无 
键入不带参数的 net start 则显示运行服务的列表。 
service 
包括下列服务: 
alerter、client service for netware、clipbook server、computer browser、dhcp client 、directory replicator 、eventlog 、
ftp publishing service 、lpdsvc、messenger 、net logon 、network dde 、network dde dsdm 、network monitoring agent 、
nt lm security support provider 、ole 、remote access connection manager 、remote access isnsap service 、remote access server 、
remote procedure call (rpc) locator 、remote procedure call (rpc) service 、schedule 、server 、simple tcp/ip services 、snmp、spooler 、tcp/ip netbios helper 、ups 及 workstation 。 

下列服务仅在 Windows NT Server 下可用:
file server for macintosh、gateway service for netware、microsoft dhcp server、
print server for macintosh、remoteboot、windows internet name service 。 

Net Statistics 

显示本地工作站或服务器服务的统计记录。 
net statistics [workstation server] 
参数 
无 
键入不带参数的 net statistics 将列出其统计信息可用的运行服务。 
workstation 
显示本地工作站服务的统计信息。 
server 
显示本地服务器服务的统计信息。 

Net Stop 

停止 Windows NT 网络服务。 
net stop service 
参数 
service 
包括下列服务: 
alerter(警报)、client service for netware(Netware 客户端服务)、clipbook server(剪贴簿服务器)、
computer browser(计算机浏览器)、directory replicator(目录复制器)、ftp publishing service (ftp )(ftp 发行服务)、
lpdsvc、messenger(信使)、net logon(网络登录)、network dde(网络 dde)、network dde dsdm(网络 dde dsdm)、
network monitor agent(网络监控代理)、nt lm security support provider(NT LM 安全性支持提供)、ole(对象链接与嵌入)、
remote access connection manager(远程访问连接管理器)、remote access isnsap service(远程访问 isnsap 服务)、
remote access server(远程访问服务器)、remote procedure call (rpc) locator(远程过程调用定位器)、
remote procedure call (rpc) service(远程过程调用服务)、schedule(调度)、server(服务器)、
simple tcp/ip services(简单 TCP/IP 服 务)、snmp、spooler(后台打印程序)、tcp/ip netbios helper(TCP/IP NETBIOS 辅助工具)、
ups 及 workstation(工作站)。 

下列服务仅在 Windows NT Server 中可用: 
file server for macintosh、gateway service for netware、microsoft dhcp server、
print server for macintosh、remoteboot、windows internet name service。 

Net Time 

使计算机的时钟与另一台计算机或域的时间同步。不带 /set 参数使用时,将显示另一台计 
算机或域的时间。 
net time [computername /domain[:name]] [/set] 
参数 
computername 
要检查或同步的服务器名。 
/domain[:name] 
指定要与其时间同步的域。 
/set 
使本计算机时钟与指定计算机或域的时钟同步。 

Net Use 

连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。该命令也控制永久网络连接。 
net use [devicename *] [computernamesharename[volume]] [password *]] 
[/user:[domainname]username] [[/delete] [/persistent:{yes no}]] 
net use devicename [/home[password *]] [/delete:{yes no}] 
net use [/persistent:{yes no}] 
参数 
无 
键入不带参数的 net use 将列出网络连接。 
devicename 
指定要连接到的资源名称或要断开的设备名称。有两类设备名:磁盘驱动器(D: 到 Z:)和 
打印机(LPT1: 到 LPT3)。若键入星号而不是指定设备名将分配下一个可用设备名。 
computernamesharename 
服务器及共享资源的名称。如果计算机名包含空白字符,要用引号 (" ") 将双反斜线及计算 
机名引住。计算机名长度可以是 1-15 个字符。 
volume 
指定服务器上的 NetWare 卷。要连接到 NetWare 服务器,必须安装并运行 NetWare 客户机 
服务 (Windows NT Workstation) 或 NetWare 网关服务 (Windows NT Server)。 
password 
访问共享资源的密码。 

提示键入密码。在密码提示行中键入密码时,将不显示该密码。 
/user 
指定进行连接的另外一个用户。 
domainname 
指定另一个域。例如 net use d: servershare /user:adminmariel 连接用户 mariel,如 
同从 admin 域连接一样。如果省略域,将使用当前登录域。 
username 
指定登录的用户名。 
/home 
将用户连接到其宿主目录。 
/delete 
取消指定网络连接。如果用户以星号指定连接,则取消所有网络连接。 
/persistent 
控制永久网络连接的使用。默认为上次使用的设置。无设备的连接不是永久的。 
yes 
保存建立的所有连接,并在下次登录时还原。 
no 
不保存建立的连接和继发连接,并在下次登录时还原现有连接。使用 /delete 开关项取消永 
久连接。 

Net User 

添加或更改用户帐号或显示用户帐号信息。 
net user [username [password *] [options]] [/domain] 
net user username {password *} /add [options] [/domain] 
net user username [/delete] [/domain] 
参数 
无 
键入不带参数的 net user 将查看计算机上的用户帐号列表。 
username 
添加、删除、更改或查看用户帐号名。用户帐号名最多可以有 20 个字符。 
password 
为用户帐号分配或更改密码。密码必须满足在 net accounts 命令 /minpwlen 选项中设置的 
最小参数。最多是 14 个字符。 

提示输入密码。在密码提示行中键入密码时,将不显示该密码。 
/domain 
在计算机主域的主域控制器中执行操作。 
该参数仅在 Windows NT Server 域成员的 Windows NT Workstation 计算机上可用。默认情 
况下,Windows NT Server 计算机在主域控制器中执行操作。 
注意:在计算机主域的主域控制器发生该动作。它可能不是登录域。 
/add 
将用户帐号添加到用户帐号数据库。 
/delete 
从用户帐号数据库中删除用户帐号。 
选项如下所示: 
/active:{no yes} 
启用或禁止用户帐号。如果不激活用户帐号,用户就不能访问计算机上的资源。默认值是 y 
es (激活)。 
/comment:"text" 
提供用户帐号的注释。该注释最多可以有 48 个字符,文字用引号引住。 
/countrycode:nnn 
使用操作系统的国家代码以便为用户帮助和错误信息文件提供指定语言文件。0 值表示默认 
国家代码。 
/expires:{date never} 
如果设置 date,将导致用户帐号过期,never 不对用户帐号设置时间限制。过期日期根据 
/countrycode 值可以是下列格式: mm/dd/yy、dd/mm/yy 或 mmm, dd, yy。注意帐号在指定 
日期开始时过期。月份可以是数字、全名或三个字母的简拼。年可以是两位或四位数,使用 
逗号或斜线(不要用空格) 区分日期的各部分。如果省略 yy ,则使用该日期下一次到来的 
年份(根据计算机的时钟)。例如如果在 1994 年 1 月 10 日到 1995 年 1 月 8 日之间输 
入下列日期项,那它们相同:jan,9 
1/9/95 
january,9,1995 
1/9 
/fullname:"name" 
指定用户全名而不是用户名。用引号将名字引住。 
/homedir:path 
设置用户宿主目录的路径。该路径必须存在。 
/homedirreq:{yes no} 
设置是否需要宿主目录。 
/passwordchg:{yes no} 
指定用户是否能改变自己的密码。默认值是 yes。 
/passwordreq:{yes no} 
指定用户帐号是否需要密码,默认值是 yes。 
/profilepath:[path] 
设置用户登录配置文件的路径。该路径名指向注册表配置文件。 
/scriptpath:path 
为用户登录脚本设置路径。Path 不能是绝对路径; 
path 是相对于 %systemroot%SYSTEM32REPLIMPORTSCRIPTS 的相对路径:。 
/times:{times all} 
指定允许用户使用计算机的时间。times 值表示为 day[-day][, day[-day]] , time[-time ][, time[-time]], 
增量限制为一小时。Days 可以是全名或简写(M、T、W、Th、F、Sa、Su)。Hours 可以是 12 小时制或 24 小时制。
对于 12 小时值,使用 AM、PM 或 A.M、P.M 。
all 表示用户总可以登录。空值表示用户永远不能登录。
用逗号分隔日期和时间,分隔时间和日期的单位用分号(例如 M,4AM-5PM; T,1PM-3PM)。指定 /times 时不要使用空格。 
/usercomment:"text " 
让管理员添加或更改帐号的“用户注释”。用引号引住文字。 
/workstations:{computername[,...] *} 
列出最多八个用户可以登录到网络的工作站。用逗号分隔列表中的多个项。如果 /workstat 
ions 没有列表,或如果列表是星号“*”,则用户可以从任何一台计算机登录。 

Net View 

显示域列表、计算机列表或指定计算机的共享资源列表。 
net view [computername /domain[:domainname]] 
net view /network:nw [computername] 
参数 
无 
键入不带参数的 net view 将显示当前域的计算机列表。 
computername 
指定要查看其共享资源的计算机。 
/domain[:domainname] 
指定要查看其可用计算机的域。如果省略 domainname ,则显示网络的所有域。 
/network:nw 
显示 NetWare 网络中所有可用的服务器。如果指定计算机名,则显示 NetWare 网络中该计 
算机的可用资源。也可以用此开关指定添加到系统中的其他网络。 

-------------------------------------------------------------------------------------------------------------------
44 Tracert 和 PathPing (网络命令)

tracert 

验证通往远程主机路径

用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

参数:
-d Do not resolve addresses to hostnames.(不将IP转为主机名) 
-h maximum_hops Maximum number of hops to search for target.(最大跟踪数量) 
-j host-list Loose source route along host-list. 
-w timeout Wait timeout milliseconds for each reply.(time out 的时间)

最简单的用法就是 tracert hostname 
其中hostname是计算机名或你想跟踪其路径的计算机的IP地址.
TRACERT将返回数据包借以到达最终目的地的各种IP地址.

Tracert 202.96.209.5

显示结果为:


Tracing route to ns-px.online.sh.cn [202.96.209.5]

over a maximum of 30 hops:



1 12 ms 20 ms 19 ms my.router [xxx.xxx.xx.xx]

2 6 ms 1 ms 1 ms xxx.xxx.xx.xx 

3 1 ms 1 ms 2 ms xxx.xxx.xx.xx 

4 <1 ms <1 ms <1 ms xxx.xxx.xx.xx 

5 <1 ms <1 ms <1 ms 219.146.19.5 

6 15 ms 15 ms 15 ms 202.97.36.113 

7 15 ms 15 ms 15 ms 202.101.63.253 

8 15 ms 15 ms 15 ms 202.109.0.141 

9 16 ms 16 ms 16 ms 202.109.39.2 

10 16 ms 15 ms 15 ms 202.96.209.8 

11 16 ms 16 ms 15 ms ns-px.online.sh.cn [202.96.209.5] 



Trace complete.

第一个是我的网关,途径10个路由器,最后一个是目的地址。


PathPing

pathping 命令是一个路由跟踪工具,
它将 ping 和 tracert 命令的功能和这两个工具所不提供的其他信息结合起来。
pathping 命令在一段时间内将数据包发送到到达最终目标的路径上的每个路由器,
然后基于数据包的计算机结果从每个跃点返回。
由于命令显示数据包在任何给定路由器或链接上丢失的程度,
因此可以很容易地确定可能导致网络问题的路由器或链接。 

参数介绍 

选项 名称 功能 
  -n Hostnames 不将地址解析成主机名。 
  -h Maximum hops 搜索目标的最大跃点数。 
-g Host-list 沿着路由列表释放源路由。 
-p Period 在 ping 之间等待的毫秒数。 
-q Num_queries 每个跃点的查询数。 
-w Time-out 为每次回复所等待的毫秒数。 
-T Layer 2 tag 将第 2 层优先级标记
(例如,对于 IEEE 802.1p)连接到数据包并将它发送到路径中的每个网络设备。
这有助于标识没有正确配置第 2 层优先级的网络设备。-T 开关用于测试服务质量 (QoS) 连通性。 
-R RSVP isbase Che检查以确定路径中的每个路由器是否支持“资源保留协议 (RSVP)”,
此协议允许主机为数据流保留一定量的带宽。 -R 开关用于测试服务质量 (QoS) 连通性。 

默认的跃点数是 30,并且超时前的默认等待时间是 3 秒。默认时间是 250 毫秒,并且沿着路径对每个路由器进行查询的次数是 100。 

以下是典型的 pathping 报告。跃点列表后所编辑的统计信息表明在每个独立路由器上数据包丢失的情况。 


D:\>pathping -n msw 

Tracing route to msw [7.54.1.196] 
over a maximum of 30 hops: 
0 172.16.87.35 
1 172.16.87.218 
2 192.68.52.1 
3 192.68.80.1 
4 7.54.247.14 
5 7.54.1.196 

Computing statistics for 125 seconds... 
Source to Here This Node/Link 
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address 
0 172.16.87.35 
0/ 100 = 0% | 
1 41ms 0/ 100 = 0% 0/ 100 = 0% 172.16.87.218 
13/ 100 = 13% | 
2 22ms 16/ 100 = 16% 3/ 100 = 3% 192.68.52.1 
0/ 100 = 0% | 
3 24ms 13/ 100 = 13% 0/ 100 = 0% 192.68.80.1 
0/ 100 = 0% | 
4 21ms 14/ 100 = 14% 1/ 100 = 1% 10.54.247.14 
0/ 100 = 0% | 
5 24ms 13/ 100 = 13% 0/ 100 = 0% 10.54.1.196 

Trace complete. 

当运行 pathping 时,在测试问题时首先查看路由的结果。
此路径与 tracert 命令所显示的路径相同。
然后 pathping 命令对下一个 125 毫秒显示忙消息(此时间根据跃点计数变化)。
在此期间,pathping 从以前列出的所有路由器和它们之间的链接之间收集信息。
在此期间结束时,它显示测试结果。 

最右边的两栏 This Node/Link Lost/Sent=Pct 和 Address 包含的信息最有用。
172.16.87.218(跃点 1)和 192.68.52.1(跃点 2)丢失 13% 的数据包。
所有其他链接工作正常。
在跃点 2 和 4 中的路由器也丢失寻址到它们的数据包(如 This Node /Link 栏中所示),
但是该丢失不会影响转发的路径。 

对链接显示的丢失率(在最右边的栏中标记为 |)表明沿路径转发丢失的数据包。
该丢失表明链接阻塞。
对路由器显示的丢失率(通过最右边栏中的 IP 地址显示)表明这些路由器的 CPU 可能超负荷运行。
这些阻塞的路由器可能也是端对端问题的一个因素,尤其是在软件路由器转发数据包时。

-------------------------------------------------------------------------------------------------------------------
下面列一些不常用的命令:

Findstr 

命令行文本搜索工具,类似win中搜索 "文件中的一个词或词组"

CACLS

显示或者修改文件的访问控制表(ACL)



CACLS filename [/T] [/E] [/C] [/G user:perm] [/R user [...]]

[/P user:perm [...]] [/D user [...]]

filename 显示 ACL。

/T 更改当前目录及其所有子目录中

指定文件的 ACL。

/E 编辑 ACL 而不替换。

/C 在出现拒绝访问错误时继续。

/G user:perm 赋予指定用户访问权限。

Perm 可以是: R 读取

W 写入 

C 更改(写入)

F 完全控制

/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。

/P user:perm 替换指定用户的访问权限。

Perm 可以是: N 无

R 读取

W 写入

C 更改(写入)

F 完全控制

/D user 拒绝指定用户的访问。

在命令中可以使用通配符指定多个文件。

也可以在命令中指定多个用户。



缩写:

CI - 容器继承。

ACE 会由目录继承。

OI - 对象继承。

ACE 会由文件继承。

IO - 只继承。

ACE 不适用于当前文件/目录。

---------------------------------------
刚才看了某位朋友写的《 非只读.不保护.实现安全无毒游戏更新方案 》
其实设置起来非常简单 一个命令就能实现
当然游戏盘必须是NTFS格式
请事先把所有游戏装到一个文件夹下 
比如 E:\GAME
然后在CMD下输入
CACLS e: /c /p everyone:n 
不好意思 刚才后面打成了everyone:no 应该是everyone:n
就行了 任何用户都没有权限访问E:盘根目录 只要不知道文件夹名称就不能看到里面的内容,
Looked(威金)病毒由于找不到文件夹也就无法感染,但是可以直接通过
E:\GAME
来访问子目录,所以不影响同步和运行
就这么简单

检测某进程是否已经存在(w.vicp.net)

tasklist /fi "imagename eq r_server.exe"|find "r_server.exe"

IF %errorlevel% == 0 GOTO ..............

--------------------TASKLIST

TASKLIST [/S system [/U username [/P [password]]]]
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

描述:
这个命令行工具显示应用程序和本地 
或远程系统上运行的相关任务/进程的
列表。

参数列表:
/S system 指定连接到的远程系统。

/U [domain\]user 指定应该在哪个用户上下文
执行这个命令。

/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。

/M [module] 列出所有其中符合指定模式名
的 DLL 模块的所有任务。
如果没有指定模块名,则
显示每个任务加载的所有模块。

/SVC 显示每个进程中的服务。

/V 指定要显示详述
信息。

/FI filter 显示一系列符合筛选器指定的标准
的任务。

/FO format 指定输出格式。
有效值: "TABLE"、"LIST"、"CSV"。

/NH 指定栏标头不应该在
输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。

/? 显示帮助/用法。


筛选器:
筛选器名 有效操作符 有效值
----------- --------------- --------------
STATUS eq, ne 正在运行 | 没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
SESSIONNAME eq, ne 会话名
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 分,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量(KB)
USERNAME eq, ne 用户名,格式为 [domain\]user

SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
MODULES eq, ne DLL 名

例如:
TASKLIST
TASKLIST /M
TASKLIST /V
TASKLIST /SVC
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domain\username /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"