1. 回显
ECHO ON
开启或关闭回显。
ECHO 1. copy the necessary files to the target folder
在批处理屏幕上显示指定的字符。
2. 暂停
pause
使批处理暂停,等待用户按任意字符后退出。
3. 改变当前目录
cd E:\adventure
改变当前目录。
这里是将当前目录设置为E:\adventure。
注意:如果是要将当前目录设置为另一个盘的某个目录,需要先切换到该盘根目录:
当前目录C:\Windows
切换到:E:\adventure
需要分两步完成:
E:
cd adventure
4. 重命名文件
ren original.txt target.txt
重命名文件。
这里把original.txt文件重命名为target.txt。
5. 拷贝文件
copy E:\XML\Report* C:\XML\
拷贝源文件到目标路径,支持通配符。
这里把E:\XML目录下Report开头的所有文件拷贝到C:\XML目录下。
如果需要拷贝子目录下的文件和文件夹,用到xcopy。
xcopy /i /e /y E:\XML\Report* C:\XML\
copy的扩展版。
/i - 如果目标路径不存在且拷贝多个文件,则认为目标路径是文件夹。
/e - 拷贝目录和子目录,包括空的目录。
/y - 直接覆盖目标路径同名的文件而不提示。
6. 删除文件
del E:\temporary\terrific* /s /q
删除指定的文件夹或文件。
/s - 删除子目录下的文件。
/q - 安静模式。
这里将删除E:\temporary目录及子目录下的所有terrific开头的文件。
7. 创建目录
mkdir unconventional
创建目录。
这里将创建名为unconventional的目录。
8. 删除目录
rmdir /s unconventional
删除目录。
/s - 删除子目录。
这里将删除名为unconventional的目录及其子目录。
9. 判断文件或文件夹是否存在
IF NOT EXIST E:\temporary\venture mkdir E:\temporary\venture
判断文件或文件夹是否存在(不存在),如果存在(不存在)执行指定命令。
这里判断E:\temporary\venture是否存在,如果不存在则创建该文件或文件夹。
可以使用ELSE字句:
IF EXIST E:\temporary\venture (
rmdir E:\temporary\venture
) ELSE (
ECHO E:\temporary\venture is missing.
)
10. 日期
date
按照区域语言选项设置的日期格式输出。
如果要把transaction_DATE.txt重命名为transaction_[当前日期].txt。如果日期中含有文件系统名非法字符 / :,那么将无法执行。方法是取出日期中的合法字符:
假设默认日期输出为:Thu 05/24/2012
ren ^"transaction_DATE.txt^" ^"transaction_%date:~10,4%-%date:~4,2%-%date:~7,2%.txt^"
^: 转义字符
%date:~startIndex, length%: 取出日期从startIndex(zero-based)开始,长度为length的字符串
执行该批处理后,文件名称变成transaction_2012-05-24.txt
11. 添加域用户到本地管理组:
net localgroup administrators /add [DOMAIN_NAME]\[USER_NAME]
[DOMAIN_NAME]为域名,[USER_NAME]为域用户名
12. 查看端口占用:
netstat -aon | findstr "1314"
netstat:显示协议统计和当前TCP/IP网络连接。
-a: 显示所有连接和监听端口。
-b: 显示创建连接或端口的进程名称,需要管理员权限[Run as administrator]才可以使用。
-e: 以太网统计信息,可以和-s一起使用。
-f: 远程地址以全限定域名显示。
-n: 以数字形式显示地址和端口号。
-o: 显示连接关联的所属进程ID。
-p proto: 显示proto指定的协议的连接。proto 可以是:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6
-r: 显示路由表。
-s: 按协议统计信息。显示IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, UDPv6的统计信息。
常见状态:
LISTEN
监听来自远程TCP端口的连接请求。
SYN-SENT
在发送连接请求后等待匹配的连接请求。
SYN-RECEIVED
在收到和发送连接请求后等待对方对连接请求的确认。
ESTABLISHED
已连接
CLOSE-WAIT
等待从本地用户发来的连接中断请求
CLOSING
等待远程TCP对连接中断的确认
TIME-WAIT
等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED
连接已关闭
|: 管道命令符
findstr: 在文件中查找字符串。这里netstat的结果作为findstr的输入。
13. 网络测试命令:
ping 127.1 -n 6
-n: 指定发送报文的次数
14. 查看进程列表:
tasklist
查看是否有指定名称的进程:
tasklist | findstr "vcSvcHst.exe"
15. 结束进程:
taskkill /s system /u domain\user_name /p password /t /f /im "vcSvcHst.exe"
/s: 远程系统
/u: [域名]\用户名。/u (/p)必须和/s连用。
/p: 密码
/t: 终止进程及其子进程
/f: 强制终止
/im: 进程名称
查找是否有vcSvcHst.exe进程,有则终止,隔一段时间继续检测;无则退出:
@echo off
title Process killer
echo Process killer
echo --------------------------------------------------------------------
SET process="vcSvcHst.exe"
:start
tasklist | findstr /i %process% || exit
taskkill /t /f /im %process%
ping 127.1 -n 6 >nul 2>nul
goto start
||: 逻辑或。前面成功,后面的就不会执行
>: 输出定向符。
nul: 空,表示不输出。