bat 常用批处理命令

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: 空,表示不输出。

你可能感兴趣的:(Date,bat,time,ren)