首页 > 代码库 > [效率提升]工作中的那些命令行

[效率提升]工作中的那些命令行

工作中,假设我们可以将批处理使用的炉火纯青的话。对于效率的提升作用是很明显的。今天,我们从日常工作的角度来给大家分享一些实例。

一、执行測试脚本

在完毕一些Case编写后,为了比較方便的回归运行,我们通常会编写一个批处理脚本来完毕脚本的启动运行。

假设只在我们自己的机器上运行的话,我们直接将路径写死就能够了,比方说…\runtest.exe -vl2 -xo –e …\script.txt

可是假设Case的运行会分布到多台机器上运行,这时就要考虑整个运行过程的实现了。

可以发现,关键的地方就是获取測试框架路径。而一般測试框架会将自己的路径加入到注冊项中,于是我们仅仅要可以从注冊表中获取到測试框架路径,问题就攻克了。

怎样使用批处理读取注冊表的路径呢?使用reg命令…

第一步,获取reg query的结果,输出到temp.txt中备用

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\runtest.exe"/ve > temp.txt

第二步。使用for命令,截取出最后的路径

for/f "skip=1 tokens=1,2,*"%i in(temp.txt) do set x=%~dpk

此处批处理的含义,切割temp.txt中的每一行,将第一项赋给%i,第二项赋给%j,其余项赋给%k。再使用~dp将%k变量的绝对路径文件夹获取到。

关键点攻克了。剩下的就是批处理的拼装了。

看下拼装后的代码:

技术分享

PS:因为reg命令在Windows XP SP1版本号存在bug,假设採用上面的方法存在问题,我们能够使用Python脚本辅助解决。

添加Python脚本辅助后,批处理例如以下:

技术分享
当中Python脚本实现的过程,就是读取注冊表值并输出。

二、检查防火墙例外

在对产品安装卸载进行測试时,有时会測试产品是不是可以正常加入到防火墙例外中,于是就有了验证点。在防火墙例外中是不是包括了程序exe。调研后发现。防火墙例外可以通过两种简单的方式来验证,一种是注冊表项,一种是批处理。

但存在一种情况是注冊表中没有但防火墙中产品已经处于例外了···这时我们能够使用批处理进行处理。

首先,产品安装前。先确保防火墙例外中不包括对应产品,批处理实现例如以下:

netsh firewall delete allowedprogram "test.exe"

也就是将例外中的test.exe删除掉,确保系统环境的干净度。

安装产品,检查防火墙例外中是否包括了对应产品。批处理实现例如以下:

netsh firewall show allowedprogram

上面的命令,能够输出全部的例外中的程序,我们能够再通过程序exe名称来过滤,看是否包括在了例外中。

这样我们就能够封装一个函数,来推断是否已经在例外中了。
技术分享


使用一段时间后,会发现win7下有时会存在问题。发现win7下防火墙有了升级版本号netsh advfirewall,于是有了win7上的批处理命令:

netsh advfirewall firewall show rule name="test.exe"

又一次封装函数后,代码例如以下:

技术分享

三、结语

以上是对工作中的两个场景做了总结分享。批处理或者windows命令在非常多地方都能够提高我们的工作效率,诸如:regedit打开注冊表,services.msc打开服务管理,mstsc打开远程连接,control打开控制面板等等,当然我们也能够使用一些批处理脚本来协助我们的日常工作。诸如清理系统垃圾、bat实现打包部署、bat实现一些服务的重新启动等等操作。

在工作中,我们要有意识的将工作中的一些事情脚本化。提升工作效率。


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

欢迎回复内容到搜狗測试”公众号,与我们一起分享你的那些关注点。

[效率提升]工作中的那些命令行