1. 批处理脚本 批处理脚本就是把一个一个的命令外加一些逻辑控制组合在一起使其可一次都被执行的文本文件。在Linux上为Shell脚本,而在Windows上则为bat脚本。Windows下脚本命令能够执行需要同时满足以下两个条件:
- 路径
- 使用以驱动盘符开始的绝对路径,如c:\a\b.bat
- 使用从当前目录开始的相对路径,比如 b.bat或者..\a..bat
- 在系统环境变量PATH中指定的某一个目录下,比如%PATH%中包含c:\a时,可以在命令行上直接执行b.bat
- 可执行
后缀是.bat/cmd/com/exe的文件
批处理文件一般需要在命令行下执行,其中95/98下的命令行叫做MS-DOS命令行,而NT系的命令行才叫命令行终端
2. 变量的声明和赋值(set 和=)
批处理脚本的环境变量有延迟解析的问题,即环境变量是在这一行开始执行前就已经被替换掉了的。 可以通过【cmd.exe /v:on】或者【setlocal ENABLEDELAYEDEXPANSION】来避免该问题,或者将块处理中的代码函数化(函数中就不能再使用语句块和setlocal了--针对对象变量)
当使用call a.bat执行完a.bat之后,在a.bat(没有使用setlocal)中使用set命令设置过的变量,在当前脚本中还能够继续被使用,且其值为a.bat中设置过的值
set 变量名=值 如果等号(=)前后有空格的话,那么空格也作为变量名或者值的一部分了 set /a 变量名=算术表达式 计算算术表达式的值,并将将其赋给变量,如【set /a test= %test% * 2】 set /p 变量名=提示信息 这时提示信息会被提示给用户,并等待用户的输入,输入的内容赋值给变量 set 变量名=%变量名%值 在变量末尾追加”值“ set 变量名= 删除变量 set 所有变量的一览 set 变量前缀 所有以变量前缀开头的变量的一览 setlocal/endlocal 局部环境变量的声明,即使没有用endlocal,在批处理脚本结束的时候也会隐含的调用endlocal 一些特殊的环境变量:
3. 流程控制
1). if / else条件判断
序号 | 命令例子
| 说明
| 1 | if [not] exist 文件名 ( 命令1 ) [else 命令2]
| 判断文件是否存在
| 2
| if [not] [/i] 字符串1 == 字符串2 ( 命令1 ) [else 命令2] | 判断两个字符串是否相等 如果两边都是数字的话,作为数字进行比较 其他情况下作为字符串进行比较
| 3
| if [/i] 字符串1 比较操作符 字符串2 ( 命令1 ) [else 命令2] | 使用字符串操作符比较两个字符串
| 4
| if [not] errorlevel 错误码 ( 命令1 ) [else 命令2] | 判断上一个命令的退出码是否大于等于某一个值
| 5
| if cmdextversion 版本号 ( 命令1 ) [else 命令2] | 判断命令【cmd.exe】的内部版本号是否大于等于指定版本号
| 6
| if defined 变量 ( 命令1 ) [else 命令2] | 判断指定的变量是否存在
| 注意:
1. 命令1/命令2 必须要使用()括起来,当要执行多个命令的时候也必须使用()括起来 2. 在判断的==两边,尽量使用{}而不是使用"",因为如果%1中含有"的时候,该判断会出错 3. 在字符串比较的时候,【/i】表示比较的字符串不区分大小写。 4. if和else必须在同一行,或者if和最初的(在同一行,)和else在同一行,else后面必须有空格
IF {%1}=={%2} (
echo eq l.
) ELSE (
echo not eq l.
)
5. 因为没有相当于and 和or这样的操作符,所以不能进行复杂的运算 6. 可以使用的比较操作符如下
序号 | 操作符
| 说明 | 1 | EQU | 等于/相等 | 2
| NEQ
| 不等于/不相等
| 3
| LSS
| 小于
| 4
| LEQ
| 小于等于 | 5
| GTR
| 大于
| 6
| GEQ
| 大于等于
|
2). for循环
序号 | 使用例子 | 说明 | 1
| for %变量 in (集合) do 命令 [命令行参数] | 仅对集合中的文件进行循环,不包含目录。即使是以正则表达式的方式指定
| 2 | for /d %变量 in (集合) do 命令 [命令行参数]
| 当使用通配符(如?和*)时,仅对集合中匹配的目录进行循环 | 3
| for /r [[盘符:]路径] %变量 in (集合) do 命令 [命令行参数] | 以递归的方式对子目录也进行循环
| 4
| for /l %变量 in (开始, 增量, 结束) do 命令 [命令行参数] | 从开始到结束以增量的方式循环执行
| 5
| for /f ["选项"] %变量 in (文件集合) do 命令 [命令行参数] | 对指定的文件中的各行进行循环 其中空行会被忽略掉 %变量指每一行中的第一个字段
| 6
| for /f ["选项"] %变量 in (“字符串”) do 命令 [命令行参数] | 对字符串进行循环 %变量指每一行中的第一个字段
| 7
| for /f ["选项"] %变量 in (‘命令行’) do 命令 [命令行参数] | 对命令行的输出结果中的各行进行循环,但仅限于标准输出中的各行 %变量指每一行中的第一个字段
| 8
| for /f "usebackq[,选项]" %变量 in (“文件名”) do 命令 [命令行参数] | 对指定的文件中的各行进行循环 其中空行会被忽略掉。 %变量指每一行中的第一个字段 同5,但可以指定带有空格的文件名 | 9
| for /f "usebackq[,选项]" %变量 in (字符串‘) do 命令 [命令行参数] | 对字符串进行循环 %变量指每一行中的第一个字段 同6
| 10
| for /f "usebackq[,选项]" %变量 in (·字符串·) do 命令 [命令行参数] | 对命令行的输出结果中的各行进行循环,但仅限于标准输出中的各行 %变量指每一行中的第一个字段 同7
| 注意:
1. 关于【%变量】,如果是在批处理文件中时,需要写成【&&变量】,在命令行时为【%变量】。其中变量 可以为a~z或者A~Z之间的任意一个字母,但是该变量名区分大小写。 2. 集合中各个元素的分隔符可以使用逗号(,),空格,分号(;)中的任意一种,或者混合使用,因此像 【%CLASSPATH%】和【%*】这样的变量也可以指定在集合的位置。但是集合中的某个元素包含特殊 字符,比如【(】或者【)】时,需要使用【^】对其进行转义,即写成【^)】的样子。 3. 如果想使用【@】来达到执行时命令行不被显示的目的的话,需要在for前面和do后面的命令前两两个地方 都要加上【@】符号。 4. 在使用/f参数的时候,可以使用双引号指定一下选项。使用空格分隔可以指定多个选项。
选项 | 使用例子
| 说明 | skip=行数 |
| 指定从文件的开头开始忽略的行数
| eol=行尾字符
| for /f "eol=;" %i in (";注释") do echo %i
| 以指定字符开始的行会被作为注释而忽略掉。也可以理解为指定表示一行结束的字符
| delims=分隔符字符集
| for /f "delims=,;" %i in ("abc;def,ghi") do echo %i %j %k
| 默认的分隔符字符集为空格和tab,使用该选项可以变更分隔符字符集。
| usebackq
| 例子见上面的8/9/10
| 改变在集合中指定的字符串的解释方法。默认不追加双引号的字符串会被认为是文件名。这样的话包含有空格的文件名将无法指定。 如果使用了该选项,则解释如下: 使用双引号括起来的解释为文件名 使用反引号括起来的解释为命令 使用单引号括起来的解释为字符串
| tokens=字段1,字段2,字段m-n,*
| >for /f "tokens=2" %i in ("a b c") do @echo %i b >for /f "tokens=1,3" %i in ("a b c") do @echo %i %j a c >for /f "tokens=2-4" %i in ("a b c d e") do @echo %i %j %k b c d >for /f "tokens=1,*" %i in ("a b c d e") do @echo %i --- %j a --- b c d e >for /f "tokens=*" %i in ("a b c d e") do @echo %i a b c d e
| 指定从第几个字段开始赋值给变量,以及取出那些字段。【字段m-n】表示取第m到第n个字段。【*】表示指定的最后一个字段以后剩下的所有字段。 默认为从第一个字段开始赋值给【%变量】。后面的字段会自动的赋值给指定变量名的下一个字母的变量。比如变量指定为【%i】,那么第二个字段会被自动的赋值给【%j】。
|
3). goto语句和标签
if %~1 == abc goto match echo 不一致 goto :EOF
:match echo 一致
使用【:字符串】来声明一个标签,然后使用【goto 标签】来跳到指定的标签出,实现处理的转移 但是EOF是bat脚本中默认的隐含标签,表示到该批处理文件的结尾。因为需要使用【goto :EOF】来表示。
4). switch语句
在批处理脚本中没有switch/case这样的语句,需要使用goto语句来模拟。(如下) 但是要注意,这并不能完全实现。比如不能实现others或者default的功能, 因为如果在goto后面指定一个不存在的标签时,在运行到那里的时候会报批处理脚本的错误。 set case=1 goto caseA_%case% :caseA_1 echo case1 goto caseA_end :caseA_2 echo case2 goto caseA_end :caseA_end
5). 死循环
process_:start echo do process goto process_start
6). 函数
定义 | 使用
| :func_label setlocal ~ endlocal exit /b 返回码
| call :func_label call: func_label 参数列表 echo %errorlevel%
| 需要注意 延迟环境变量的问题,特别是使用for或者if的语句块时
7) pause 暂停语句,执行到pause语句后,会等待用户的指示,然后继续执行
C:\Documents and Settings\user>pause 请按任意键继续. . .
4. 关于输入输出/重定向 (1) 标准输出重定向到文件中(新建一个文件,或者覆盖原有内容)
【格式】 command > filename 【例子】 dir > out.txt
(2) 标准输出追加到既存文件的末尾
【格式】 command >> filename 【例子】 dir >> out.txt
(3) 标准错误重定向到文件中(新建文件或者覆盖原文件内容)
【格式】 command 2> filename 【例子】 dir nonexist.txt 2>stderr.txt
(注)"2"和">"不能存在空格,否则的话2会被解释为命令的参数
(4) 标准输出和错误输出都重定向到文件中(新建文件或者覆盖原文件内容)
【格式】 command > filename 2>&1 【例子】 dir nonexist.txt > out.txt 2>&1
(5) 标准输出和错误输出都重定向到NUL中,不进行显示
【格式】 command 2>NUL 1>NUL 【例子】 dir nonexist.txt 2>NUL 1>NUL
(6) 通过管道符来实现重定向,即将前一命令的标准输出作为后一命令的标准输入
【格式】 command1 |command2 【例子】 type aaa.txt | more
(7) 从文件中读取内容,作为一个命令的输入
【格式】 command1 < file 【例子】 more <aaa.txt 如果是想要标准输入作为for命令的输入时,需要使用管道的形式(command | for语句),即需要借助一个从标准输入读取数据然后又原样输出到标准输出的命令,然后for命令以管道的形式使用那个命令的输出。无论是在脚本外还是脚本内,都需要这样做。如果直接使用文件作为for语句的标准输入时,将会得不到文件中的内容。但是使用管道的话,管道后面的do语句中就不能再使用call 标签的形式了,好像是管道后面被作为了另外一个脚本来处理
(8) 从文件中或者命令行的输出中读取内容进行处理时,请使用for语句的/f选项,具体请参照流程控制中的for语句说明。
(9) 输出到标准输出
【格式】 echo 字符串 【例子】 echo aaaa 如果是输出空行可以使用【echo.】或者【echo]】
5. 脚本中命令/脚本/函数的执行 - 命令的执行在脚本中直接执行就可以了,如a.exe
- 脚本的执行,直接执行 a.bat,则a.bat后面的处理将不会再被执行
- 脚本的执行,如果使用 call a.bat,则a.bat被执行,且脚本中a.bat后面的处理也会被执行,且a.bat中设置的变量也能够继续被访问
- 函数的执行,关于函数的定义和调用,请参照流程控制中的函数部分说明。
关于命令执行后的退出码的取得,可以通过%ERRORLEVEL%变量来取得,在被执行的脚本或者函数中需要使用 exit /b来返回退出码
关于命令或者被执行的脚本/函数中标准输出的获得,可以参照流程控制中的for语句的说明。
6. 注释
使用【rem】或者【::】来注释。但是被执行的命令还是会被输出出来。比如注释的命令【rem comment】。 如果只是想注释本身不被显示,而被执行的命令被显示出来的话,可以使用【@rem】来进行注释 如果不想被执行的命令也被输出出来,需要执行【echo off】。 但是这个命令本身却会被输出出来,所以需要写成【@echo off】的样子。
7. 关于退出脚本及函数
使用【ERRORLEVEL 】可以取得exit的退出值
1). 退出当前脚本
goto :EOF 或者 exit /B :EOF是特殊的标签,表示批处理文件的最后
2). 退出函数
exit /B
3). 退出CMD程序
exit 0 对于使用exit退出的脚本,可以使用cmd /c test.bat来执行,这样不会退出终端, 且能使用【ERRORLEVEL 】取得退出值
8. 取字符串字串的操作(正确的说法应该叫环境变量的替换)
下面的用法可以通过【set /?】来查看 x为字符串变量,m是从0开始的,-m的时候m是从1开始的
%x:~m% | 从第m字符开始一直到最后 m字符~最后
| %x:~m,n% | 从第m个字符到第n个字符之间的字串,不包含第n个字符 m~n字符
| %x:~m,-n% | 从第m个字符到倒数第n个字符之间的字串,不包含倒数第n个字符 | %x:~-m% | 从倒数第m个字符开始到最後 | %x:~-m,n% | 从倒数第m个字符开始到第n个字符,不包含第n个字符 | %x:~-m,-n% | 从倒数第m个字符开始到倒数第n个字符,不包含倒数第n个字符 | %x:a=% | 将x中的所有a都替换为空
| %x:/=\% | 将x中的所有/都替换为\ | %x:*\=% | 将第一个[\]前面的字符(包括\)全部替换为空
|
9. 当脚本参数为文件时的一些方便处理(可以查看for的帮助)
取得文件的目录,盘符,文件名等,这里以第一个参数%1为例:
修饰符 | 说明、用途 | %1
| 第一个参数自身,如果路径中有空格,会用双引号括起来
| %~1 | 删除%1中所有引号 | %~f1 | 取得%1的完全路径 比如路径中有..这样的符号时,会被替换为争取的路径
| %~d1 | 只取得%1的盘符(C:) | %~p1 | 只取得%1的目录路径(包括最后的【\】) | %~n1 | 只取得%1的文件名,不包含扩展名 | %~x1 | 只取得%1的扩展名 ,包含【.】。如【.bat】
| %~nx1 | 只取得%1的文件名,包含扩展名 | %~s1 | 以MS-DOS的【8.3】的形式表示%1的路径 | %~a1 | 取得%1的文件属性 | %~t1 | 取得%1的文件更新日時 | %~z1 | 取得%1的文件大小 | %~dp1 | 取得%1的盘符和路径 互相之间可以结合使用。
| %~$PATH:1 | 在指定的PATH环境变量中能否找到%1,如果能够找到就返回%1的绝对路径,如果不能找到就返回空串。 但是如果%1本身就是绝对路径,那么返回的就是绝对路径,而不管是否能够在环境变量中找到 相当于Linux上的which命令
|
10. 命令行模式下可以使用的快捷键 下面的这些快捷键都是已经嵌入到了2000/XP的命令行中的 如果想要自己定义快捷键,可以使用doskey命令来做
快捷键
| 操作内容 | F1
| 刚刚执行过的命令一个字一个字的显示出来 | F2 | 直前に入力したコマンドを指定した文字まで貼り付け 不是很明白意思,暂时留下日文说明
| F3 | 显示刚刚执行过的命令 | F4 | 直前に入力したコマンドを指定した文字の前まで削除 不是很明白意思,暂时留下日文说明
| F5或者↑ | 上一个执行过的命令 | F6 或者 Ctrl + Z | [Ctrl] + [Z] 同Linux的Ctrl+D,表示EOF,文件的结束
| F7 | 列出执行过的命令的一览 | F8 | 检索输入的命令 当输入命令的一部分后按F8键,会在历史履历中检索以输入字符开头的命令
| F9 | 选择执行过的命令的序号 | ↓ | 执行过的历史命令中下一个执行的命令 | Tab | 文件名或者文件夹名的自动补全 | Enter | 所选范围的拷贝。或者命令的执行 | ESC | 消除现在输入的命令 | PageUP
| 历史记录中的最早开始的命令行 | PageDown
| 列出最后输入的命令 | HOME
| 光标移动到行头
| END
| 光标移动到行尾
| Alt + Enter | 命令行窗口表示?全屏显示直接的切换 | Alt+F7
| 清空现在的命令履历
| Ctrl + C | 中断执行中的处理
| Ctrl+H | 消除键,同BS键
| Ctrl+I | 同Tab键,自动补全
| Ctrl+M | 同Enter键
| Ctrl+←
| 光标向左移一个单词
| Ctrl+→
| 光标向右移动一个单词
|
11. 命令执行时用到的几个符号
符号 | 说明 | 备注 | & | 链接多个命令使其连续执行 注意:【环境变量延迟解析】的情况
| 相当于Linux的【;】
| () | 把多个命令作为一个语句块来处理,主要用户if和for语句 注意:【环境变量延迟解析】的情况
| | || | 当前面的命令执行失败的时候,执行后面的命令 注意:这里的命令执行失败不是指脚本的退出码,而是指命令的返回码,比如脚本命令的中的语法不对导致的失败等
| 相当于Linux的【||】 【&&】和【||】没有优先级关系,顺序从左到右执行
| && | 当前面的命令执行成功的时候,执行后面的命令 注意:这里的命令执行失败不是指脚本的退出码,而是指命令的返回码,比如脚本命令的中的语法不对导致的失败等
| 相当于Linux的【&&】
【&&】和【||】没有优先级关系,顺序从左到右执行
| ^ | 转义字符和继续字符 放在一行的末尾时,表示接续下一行,一起表示一行命令 放在一个字符前面的时候,表示转移这个字符,表示那个特殊字符本身
| 相当于Linux的【\】 | | | 管道符,将前一个命令的标准输出重定向到下一个命令的标准输入 | 相当于Linux的【|】
|
12.一些特殊设备
13. Windows命令一览
1)目录磁盘操作命令
命令 | 说明 | 命令
| 说明
| chdir/cd | 改变当前目录 | chkdsk | 检查并表示指定磁盘的状态
| cipher | 来控制ntfs卷上的目录和文件的加密处理
| compact | ntfs系统上目录和文件的压缩与解压缩的设定和状态表示
| convert
| 将fat16和fat32转换为ntfs
| defrag
| 分析整理指定磁盘上的碎片
| diskcopy
| 软盘之间的拷贝
| diskcomp
| 两个软盘之间的内容的比较
| diskpart
| 磁盘的管理,分区/磁盘/卷等的设定和表示工具,也可以执行一个脚本,相当于Linux上的fdisk
| format
| 对磁盘,软驱等进行格式,以便于以文件方式存储数据
| label
| 为了识别磁盘而进行的卷标的做成修改和删除工具
| mkdir/md
| 创建目录
| mountvol
| 将指定的卷挂载到ntfs的某一个目录上 | pushd/popd
| 记录变更目录的命令,使用popd可以回到原来的目录
| rmdir/rd
| 删除目录
| s st
| 为某一个目录指定虚拟的驱动盘符
| verify
| 指示 cmd.exe 是否要验证文件是否已正确地写入磁盘。或者显示当前的状态
| vol
| 显示指定磁盘的卷标和序列号(如果存在)。
|
2)关于文件的操作 命令 | 说明 | 命令 | 说明 | attrib
| 显示或者设定文件和目录的属性 | comp | 比较两个文件的内容,并将不同点表示出来 | copy
| 复制文件,或者将多个文件合并为一个文件 | del/erase
| 删除文件 | dir
| 显示指定目录或当前目录中文件/目录的一览信息 | expand
| 将压缩的cab文件解压缩 | fc
| 比较文件的内容,并将不同点详细的表示出来 | find
| 在指定文件中搜索包含指定字符串的行并显示出来 | findstr
| 在指定文件中搜索包含指定字符串的行并显示出来,但可以指定正则表达式 | more
| 显示文本文件的内容 | move
| 移动文件或者目录,也可以用来重命名 | rename/ren
| 重命名文件或者目录名 | replace | 比较指定的两个同名文件,根据指定的参数进行更新 | sort
| 对输入的内容或者文件中的内容进行排序。 | tree
| 以树的形式表示指定目录的层次结构 | type
| 表示指定的文本文件的内容 | xcopy
| 一次复制包含子目录的整个目录结构及其中文件 | print
| 打印指定的文本文件 | recover
| 通过从构成文件的扇区中找出正常的扇区来恢复文件
|
|
|
3)关于网络的操作 命令 | 说明 | 命令 | 说明 | arp
| 显示和设定IP与MAC的对应关系
| ftp
| 与FTP服务器之间传送文件的ftp客户端命令 | getmac
| 取得网络适配器的MAC地址
| ipconfig
| 显示和设定网络适配器的信息 | nbtstat
| 显示与NetBIOS over TCP/IP相关的统计信息
| net
| 显示和设定与在TCP/IP网络上构筑的Windows网络的所有相关的信息,包含有22个子命令 | netstat
| 显示使用TCP/IP协议进行的通信的状况,或者确认主机上的服务的状况以及与该主机的链接状况
| nslookup
| 向DNS服务器进行查询,以获得IP的主机名或者指定主机名的IP地址 | ping
| 使用ICMP来确认IP包是否能够正常到达。即可用来确认IP的链接状态。
| route
| 显示或者设置网络上的路由表 | telnet
| 在TCP/IP网络上访问远程服务器的客户端命令
| tlntadmn
| w2k/xp上提供的管理telnet服务的命令 | tracert
| 跟踪一个IP的访问路径
| pathping
| 同时具有ping和tracert两种功能的命令 |
4)关于配置/操作系统设定的操作 命令 | 说明 | 命令 | 说明 | assoc | 对文件类型和扩展名的关系进行表示或者变更的命令 | at | 在指定的日期或时间执行指定命令的设定 | bootcfg
| 对boot.in中的配置进行变更或者表示的
| cacls
| 对ntfs上的文件/目录的ACL(访问控制列表)的显示和变更的命令 | chcp
| 命令行提示符上使用的codepage信息的表示和变更
| chkntfs
| 在启动的时候执行的OS系统检查予定任务的表示和设定 | cls
| 清屏
| color
| 设置当前命令行窗口背景色和前景色 | cscript
| 在命令行上使用WSH(Windows Script Host)的机能,能够执行脚本
| date/time
| 系统日期和时间的表示与设定 | doskey
| 扩展命令行终端的机能,可以制作命令行编辑或者履历功能的宏
| ftype
| 文件类型及其打开程序对应关系的表示和变更 | help
| 命令行中的帮助命令
| hostname
| 显示当前机器的机器名 | mem
| 显示MS-DOS兼容环境上的内存使用状况
| mode
| 对命令行可以使用的各种输入输出设备,进行各种模式的设定和表示
| path
| 对环境变量进行表示和设定
| prompt
| 变更命令行的提示符
| reg
| 在命令行进行注册表编辑的工具
| runas
| 以指定用户指定命令
| sc
| 对系统上提供的各种服务进行状态表示和设定变更
| schtasks
| 功能与AT类似,但是比at命令要高级的多
| shutdown
| 关机命令
| start
| 在当前命令行终端中打开新的命令行终端
| systeminfo
| 详细的显示当前电脑的系统信息
| taskkill
| 结束当前正在执行的任意进程或者任务
| tasklist
| 表示当前正在执行的任意进程或者任务的一览
| title
| 设定当前命令行终端的Title
| ver
| 显示当前Windows的版本信息
|
|
|
5) net 命令的各子命令
子命令 | 说明 | accounts | 对用户账号数据库全体设定的变更 对所有账号的密码和登录要求的修改
| computer | 向域数据库中追加删除电脑 但只局限于与控制器的NT/2000Server/2003Server
| user | 向域数据库中追加删除用户,或者变更表示用户信息 | group | 表示,追加。删除服务器上的组信息 但只局限于与控制器的NT/2000Server/2003Server
| localgroup | 表示或者设定本地组账号的相关信息 | start | 启动系统中的指定服务 | stop | 停止系统中的指定服务
| pause | 暂停系统中的指定服务 | contin | 继续执行临时停止的服务 | share | 显示本地的资源共享 追加资源共享 删除资源共享
| use | 接续网络上的资源共享 断开网络上的资源共享
| view | 查看网络上的资源共享 查看指定电脑上的资源共享
| file | 关闭共享的文件,解除文件的锁等操作 查看网络上公开的文件一览
| session | 显示指定计算机与网络上其他电脑的会话一览 删除会话
| print | 管理网络上共有的打印机的任务 | config | 显示server或者workstation服务相关的信息 | name | 追加或者删除使用net send送信时的对象名
| send | 向想网络上的其他用户或者电脑发送信息 | statistics | 显示本地电脑上执行的server或者workstation的统计信息 | time | 与时间服务器同步时间 | help/helpmsg | 显示帮助信息,或者显示指定的错误码的信息 |
|