这段时间忙着为我们的爬虫程序做一个守护进程,想来想去还是用脚本比较好,所以用了点时间仔细的研究了一下,这里有一点点经验想分享给大家,也不能说是经验了,只能说是我写这个的时候所用到的知识:

  1.tasklist 列出所有的进程,包括进程名称,进程的pid,属于哪一类的会话(0表示系统级的进程1表示用户级的进程)
使用格式:
Tasklist [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
参数含义:
/S system 指定连接到的远程系统。
/U [domain\]user 指定使用哪个用户执行这个命令。
/P [password] 为指定的用户指定密码。
/M [module] 列出调用指定的DLL模块的所有进程。如果没有指定模块名,显示每个进程加载的所有模块。
/SVC 显示每个进程中的服务。
/V 显示详细信息。
/FI filter 显示一系列符合筛选器指定的进程
/FO format 指定输出格式,有效值:TABLE、LIST、CSV。
/NH 指定输出中不显示栏目标题。只对TABLE和CSV格式有效。
 
  2.taskkill命令
TASKKILL [/S system [/U username [/P [password]]]]
         { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
参数含义:
  /S    system           指定要连接的远程系统。
 
  /U    [domain\]user    指定应该在哪个用户上下文执行这个命令。
 
  /P    [password]       为提供的用户上下文指定密码。如果忽略,提示
                         输入。
 
  /FI   filter           应用筛选器以选择一组任务。
                         允许使用 "*"。例如,映像名称 eq acme*
 
  /PID  processid        指定要终止的进程的 PID。
                         使用 TaskList 取得 PID。
 
  /IM   imagename        指定要终止的进程的映像名称。通配符 '*'可用来
                         指定所有任务或映像名称。
 
  /T                     终止指定的进程和由它启用的子进程。
 
  /F                     指定强制终止进程。
 
  /?                     显示帮助消息。
 
set命令:
  显示、设置或删除 cmd.exe 环境变量。
 
SET [variable=[string]]
 
  variable  指定环境变量名。
  string    指定要指派给变量的一系列字符串。
 
要显示当前环境变量,键入不带参数的 SET。
 
如果命令扩展被启用,SET 会如下改变:
 
可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配
SET 命令已使用的名称的所有变量的值。例如:
SET P会显示所有以字母 P 打头的变量
如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL设置成 1。
SET 命令不允许变量名含有等号。....
在这列就不一一列举了,可以在doc下 set /? 命令来获取帮助
但是要注意的是set所设置的的是环境变量,前提是环境变量中有这个变量才能给其赋值或者是修改它的值。
比如说set str = 123; 
但是如何取到这个值那,可以这样做,%str%
但是想要把中间产生的结果给环境变量,比如说:
tasklist | find "cmd.exe">str 这样写看上去好像是正确的,其实不然
批处理是不允许这样做的,目前我的解决办法是先定位到一个文件,然后在从文件定位给环境变量;
tasklist | find "cmd.exe">l1.txt;
str =
这样做就可以完成对变量的赋值了;
下面我说一下关于批处理文件多线程的问题:
其实批处理文件是不支持多线程的,为了应付特殊的需要,我们可以构建一种叫做伪多线程的结构:
定义一个比处理文件叫做st1.bat,然后在定义一个st2.bat
如果我们想让st1.bat与st2.bat同时运行我们应该怎么做那,我们可以这样做:
在st1.bat中写上这样的一句话:
start st2.bat 然后启动st1.bat 你就会发现st1.bat和st2.bat同时运行了。
另外我在说一下扩展名为.vbe的文件,这个文件的作用是隐藏doc窗口
格式是这样的:
set ws=wscript.createobject("wscript.shell")
ws.run "D:\weibo\start.bat /start",0
好了,以后有机会在分享

doc下批处理文件的感想的更多相关文章

  1. DOC下编译和运行带有包的java类文件

    前言: 带有包名的java类在DOC下编译可以成功,但是运行出错  错误: 找不到或无法加载主类 com.soanl.socket.MyServer D盘temp文件下有个Hello.java文件,包 ...

  2. Linux下批处理文件编写

    linux下的批处理文件,基本就是shell脚本文件. 一.最简单的脚本书写方法为: 1.新建一个文件,名字为test(自己定义的名字) touch test.sh 2.在里面编写脚本 程序必须以下面 ...

  3. Windows下批处理文件(.bat)的使用

    cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多.cmd文件只 ...

  4. 有用的2个 Windows 下批处理文件(bat文件):

    创建多个文件夹(目录): 新建一个记事本:win + R –>输入notepad 在笔记本中输入如下: mkdir Would mkdir you mkdir marry mkdir me 另存 ...

  5. doc下设置永久环境变量的好方法

    http://www-2w.blog.163.com/blog/static/97931518201021211123267/ 需要查看命令具体实现:setx machine “%path%”. 配置 ...

  6. Windows 下安装cryptography-1.6

    由于proxy限制不能使用pip install cryptography命令安装cryptography,所以安装这个python库折腾了一天多的时间,差点就怀疑人生了,好在柳暗花明,惊喜出现了.下 ...

  7. windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...

  8. Python下科学计算包numpy和SciPy的安装

    转载自:http://blog.sina.com.cn/s/blog_62dfdc740101aoo6.html Python下大多数工具包的安装都很简单,只需要执行 “python setup.py ...

  9. win7下如何安装JDK

    第一步:点击下载好的JDK安装程序,百度一下,网上很多,然后弹出如下界面,点击“下一步”即可. 2 第二步:此时比较关键,设置安装的路径,可以事先建立一个文件夹,以在D盘为例,如D:\java. 3 ...

随机推荐

  1. [改善Java代码]让多重继承成为现实

    建议41: 让多重继承成为现实 在Java中一个类可以多重实现,但不能多重继承,也就是说一个类能够同时实现多个接口,但不能同时继承多个类.但有时候我们确实需要继承多个类,比如希望拥有两个类的行为功能, ...

  2. [设计模式]<<设计模式之禅>>抽象工厂模式

    1 女娲的失误 上一篇讲了女娲造人的故事.人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱.仇恨.喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍 脑袋,忘记给人类定义性别了 ...

  3. Java事件总线

    在平时写代码的过程中,我们需要实现这样一种功能:当执行某个逻辑时,希望能够进行其他逻辑的处理.最粗暴的方法是直接依赖其他模块,调用该模块的相应函数或者方法.但是,这样做带来一些问题. 模块间相互依赖, ...

  4. div a 和 div > a 的区别———后者指作用到div下一级的 a 标签 ,仅一级

    div a 和 div > a 的区别---后者指作用到div下一级的 a 标签 ,仅一级 如: <div> <a href="#">可以作用到< ...

  5. EF4.1之Code first 的几种连接数据库的方式

    通过代码 进行连接和创建数据库的方法主要分为两种: 1.使用用连接字符串(在配置文件里面): 连接字符串: <add name="DbEntities" connection ...

  6. 老男孩-金角大王-python学习博客地址

    http://www.cnblogs.com/alex3714/category/770733.html

  7. DOS批处理命令-pause

    “pause”用于暂停批处理的执行器并给出提示信息,然后由用户决定是继续执行还是终端执行. 语法: pause 简单一个pause,不附带任何参数. 执行pause以后会提示一句话[按任意键继续执行] ...

  8. 第十三篇、Swift_Nav自定义返回按钮后或者隐藏导航栏,Pop返回手势失效的解决方法 Pop全局返回添加的方法

    边缘的pop返回手势: override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor.purple ...

  9. UINavigationController切换视图的简单使用

    UINavigationController通过栈的方式来管理视图,通过push将视图压入栈,pop将视图推出栈. 下面通过简单的示例说明 AppDelegate.m - (BOOL)applicat ...

  10. iOS预处理指令

    预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理. 预处理指令是以#开头的代码行,#后是指令关键字,在关键字和#号之间允许存在任意个数的空 ...