Batch脚本的简单应用

网易博客停用,转几篇原来写的文章过来

在做自动化过程中,碰到Java代码与windows相互交互的情况,需要获取一些windows的系统信息,用到了Batch脚本,比较方便。

需要完成的功能很简单,获取windows中运行的进程的pid,写在一个文本文件中供Java代码读取。
主要用到的功能包括管道、重定向等。
脚本如下:

@echo off
tasklist /FI "IMAGENAME eq qq.exe" | find "qq.exe" >pid.txt
for /f "tokens=2" %%i in (pid.txt) do set str= %%i
echo %str%>pid.txt
exit

具体解释下:

1. @echo off

echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 
语法 echo [{on|off}] [message] Sample:@echo off / echo hello world
2.tasklist 用来显示运行在本地或远程计算机上的所有进程
3.| find "qq.exe"
管道,在bat中也可以使用管道,将各种命令组合在一起使用,将第一条命令的结果作为第二条命令的参数使用,在Linux中很常用,在batch脚本中也可以使用。
4.>pid.txt
输出重定向。将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。
5.for /f "tokens=2" %%i in (pid.txt) do set str= %%i
For命令:FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令
参数:FOR有4个参数 /d /l /r /f,这里用到/f,是用的最多的,最有用的
格式: FOR /F ["options"] %%i IN (file) DO command FOR 
/F ["options"] %%i IN ("string") DO command FOR 
/F ["options"] %%i IN ('command') DO command
这里用到:in(file)
"tokens=2":表示取第二列;
set:赋值
6.echo %str%>pid.txt
将取得的“%str%”值重定向写入pid.txt中。
 
Batch脚本的功能跟shell、Python等比较相对来说功能少多了,但它不需要环境的配合,在做简单工作时效率很高。
每个工具都有其优点和缺点,只要用在合适的地方就行。
原文地址:https://www.cnblogs.com/appstest/p/4962312.html