我们可以通过如下语句打印C盘根目录下所有的目录:
for /d %i in (c:\*) do echo %i C:\Users\soft>for /d %i in (c:\*) do echo %iC:\Users\soft>echo c:\mxd
c:\mxdC:\Users\soft>echo c:\Program Files
c:\Program FilesC:\Users\soft>echo c:\Program Files (x86)
c:\Program Files (x86)C:\Users\soft>echo c:\Users
c:\UsersC:\Users\soft>echo c:\Windows
c:\WindowsC:\Users\soft>echo c:\Xiaomi
c:\Xiaomi
   我们可以查看记事本的pid是多少(如果没有打开记事本,运行后提示没有运行的任务匹配指定标准)
C:\Users\soft>notepad  //打开一个记事本程序C:\Users\soft>for /f "tokens=2 " %a in ('tasklist  /fi "imagename eq notepad.exe" /nh') do echo %aC:\Users\soft>echo 10548
10548
   如果要结束notepad.exe运行下面的即可:
C:\Users\soft>for /f "tokens=2 " %a in ('tasklist  /fi "imagename eq notepad.exe" /nh') do taskkill /f /pid %aC:\Users\soft>taskkill /f /pid 10548
成功: 已终止 PID 为 10548 的进程。C:\Users\soft>

for的帮助文件:

C:\Users\soft>for /?
对一组文件中的每一个文件执行某个特定命令。FOR %variable IN (set) DO command [command-parameters]%variable  指定一个单一字母可替换的参数。(set)      指定一个或一组文件。可以使用通配符。command    指定对每个文件执行的命令。command-parameters为特定命令指定参数或命令行开关。在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.如果启用命令扩展,则会支持下列 FOR 命令的其他格式:FOR /D %variable IN (set) DO command [command-parameters]如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。FOR /L %variable IN (start,step,end) DO command [command-parameters]该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]或者,如果有 usebackq 选项:FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]fileset 为一个或多个文件名。继续到 fileset 中的下一个文件之前,每份文件都被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。你可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。这些关键字为:eol=c           - 指一个行注释字符的结尾(就一个)skip=n          - 指在文件开始时忽略的行数。delims=xxx      - 指分隔符集。这个替换了空格和制表符的默认分隔符集。tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。m-n格式为一个范围。通过 nth 符号指定 mth。如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。usebackq        - 指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串并且一个单引号字符为文字字符串命令并允许在 file-set中使用双引号扩起文件名称。某些范例可能有助:FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给 for 函数体,用逗号和/或空格分隔符号。请注意,此 for 函数体的语句引用 %i 来获得第二个符号,引用 %j 来获得第三个符号,引用 %k来获得第三个符号后的所有剩余符号。对于带有空格的文件名,你需要用双引号将文件名括起来。为了用这种方式来使用双引号,还需要使用 usebackq 选项,否则,双引号会被理解成是用作定义某个要分析的字符串的。%i 在 for 语句中显式声明,%j 和 %k 是通过tokens= 选项隐式声明的。可以通过 tokens= 一行指定最多 26 个符号,只要不试图声明一个高于字母 "z" 或"Z" 的变量。请记住,FOR 变量是单一字母、分大小写和全局的变量;而且,不能同时使用超过 52 个。还可以在相邻字符串上使用 FOR /F 分析逻辑,方法是,用单引号将括号之间的 file-set 括起来。这样,该字符串会被当作一个文件中的一个单一输入行进行解析。最后,可以用 FOR /F 命令来分析命令的输出。方法是,将括号之间的 file-set 变成一个反括字符串。该字符串会被当作命令行,传递到一个子 CMD.EXE,其输出会被捕获到内存中,并被当作文件分析。如以下例子所示:FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i会枚举当前环境中的环境变量名称。另外,FOR 变量参照的替换已被增强。你现在可以使用下列
选项语法:%~I          - 删除任何引号("),扩展 %I%~fI        - 将 %I 扩展到一个完全合格的路径名%~dI        - 仅将 %I 扩展到一个驱动器号%~pI        - 仅将 %I 扩展到一个路径%~nI        - 仅将 %I 扩展到一个文件名%~xI        - 仅将 %I 扩展到一个文件扩展名%~sI        - 扩展的路径只含有短名%~aI        - 将 %I 扩展到文件的文件属性%~tI        - 将 %I 扩展到文件的日期/时间%~zI        - 将 %I 扩展到文件的大小%~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩展到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串可以组合修饰符来得到多重结果:%~dpI       - 仅将 %I 扩展到一个驱动器号和路径%~nxI       - 仅将 %I 扩展到一个文件名和扩展名%~fsI       - 仅将 %I 扩展到一个带有短名的完整路径名%~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展到找到的第一个驱动器号和路径。%~ftzaI     - 将 %I 扩展到类似输出线路的 DIR在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法
用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。

tasklist的帮助文件:

C:\Users\soft>tasklist /?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]         列出当前使用所给 exe/dll 名称的所有任务。如果没有指定模块名称,显示所有加载的模块。/SVC                    显示每个进程中主持的服务。/APPS 显示应用商店应用及其关联的进程。/V                      显示详细任务信息。/FI    filter           显示一系列符合筛选器指定条件的任务。/FO    format           指定输出格式。有效值: "TABLE"、"LIST"、"CSV"。/NH                     指定列标题不应该在输出中显示。只对 "TABLE" 和 "CSV" 格式有效。/?                      显示此帮助消息。筛选器:筛选器名称     有效运算符           有效值-----------     ---------------           --------------------------STATUS          eq, ne                    RUNNING | SUSPENDEDNOT RESPONDING | UNKNOWNIMAGENAME       eq, ne                    映像名称PID             eq, ne, gt, lt, ge, le    PID 值SESSION         eq, ne, gt, lt, ge, le    会话编号SESSIONNAME     eq, ne                    会话名称CPUTIME         eq, ne, gt, lt, ge, le    CPU 时间,格式为hh:mm:ss。hh - 小时,mm - 分钟,ss - 秒MEMUSAGE        eq, ne, gt, lt, ge, le    内存使用(以 KB 为单位)USERNAME        eq, ne                    用户名,格式为[域\]用户SERVICES        eq, ne                    服务名称WINDOWTITLE     eq, ne                    窗口标题模块         eq, ne                    DLL 名称注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS"筛选器。Examples:TASKLISTTASKLIST /MTASKLIST /V /FO CSVTASKLIST /SVC /FO LISTTASKLIST /APPS /FI "STATUS eq RUNNING"TASKLIST /M wbem*TASKLIST /S system /FO LISTTASKLIST /S system /U 域\用户名 /FO CSV /NHTASKLIST /S system /U username /P password /FO TABLE /NHTASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

参考:http://blog.csdn.net/xhhjin/article/details/7373524

cmd下获取指定进程名的pid号,并通过taskkill结束该进程相关推荐

  1. shell获取指定程序的pid号

    ps -ef | grep process | grep -v grep | awk '{print $2}'

  2. 【shell】shell下获取指定目录及子目录下的所有文件或指定文件

    Date:2018.7.8 shell下获取指定目录下的所有文件或指定文件: 方法一: funtion getAllFilesfor files in `find $1 -name "*.t ...

  3. Windows/Linux下获取当前线程的ID号

    序 在多线程场合,为了方便跟踪线程的运行状态,往往需要在程序中添加打印当前线程ID号的功能. 1. Linux下打印当前线程ID pthread_t pthread_self() 2. Windows ...

  4. window下获取指定目录下面的所有文件名 c/c++

    摘自:http://blog.csdn.net/gengoo/article/details/4622084?reload #include <iostream> #include < ...

  5. JAVA 获取指定月份的每周的开始日期和结束日期

    1.第一种情况,从1号开始到月份最后一天结束 代码如下: private DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPatte ...

  6. php获取指定日期的万年历,分享3个php获取日历的函数

    提供一个日期,获取这个日期的星期对应日历列表,键为星期标示 $month_date = '2015-09-25'; $start_time = strtotime($month_date); $sta ...

  7. c#日期转换周几_C#获取每个年,月,周的起始日期和结束日期的方法

    这篇文章主要介绍了C#获取每个年,月,周的起始日期和结束日期的方法,涉及C#时间与日期基本操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#获取每个年,月,周的起始日期和结束日期 ...

  8. Ubuntu下如何获取usb相机的PID/VID并打开指定的相机

    项目需求控制和打开两个USB摄像头,并且根据相机的PID和VID来打开指定的相机,来区分主副相机,在Windows下可以通过AForge.Video.DirectShow库来实现,但是Ubuntu下没 ...

  9. linux 查看进程id对应的路径,Linux中怎么通过PID号找到对应的进程名及所在目录方法...

    Linux中怎么通过PID号找到对应的进程名及所在目录方法 首先需要知道PID号,可以通过top命令获取. 然后我们可以用ps看以下大致信息(ps出来的信息个人觉得比较乱,不是很方便查找) [root ...

最新文章

  1. nginx +php + redis和 mysql 集群部署_CentOS安装配置LNMP(Linux+Nginx+PHP+MySQL)和Redis
  2. 如何将gitub的项目在eclipse中运行
  3. 网页上有错误(类不能支持 Automation 操作)解决方法
  4. C语言 · FJ的字符串
  5. Linux PCI网卡驱动分析
  6. 在js中实现邮箱格式的验证
  7. CentOS6.5和RedHat6.5下以rpm方式安装mysql-5.6.20
  8. 安装java错误_安装JAVA JDK错误提示正在进行另一JAVA安装解决方法
  9. 面试总结:给应届生一些找工作的基本建议,毕竟我踩坑多
  10. 数据库系统概论笔记三——销售管理子系统E-R图的设计
  11. 【Virtual Box 错误】0x00000000 指令引用的 0x00000000 内存。该内存不能为written
  12. RHCE(三、四)NTP时间服务器、SSH远程加密登录
  13. 肖特基二极管、稳压二极管、瞬态二极管之间的区别的理解
  14. Tomcat一些常见错误(遇到错误就更新)
  15. Ubuntu18.04.4安装
  16. 我与程序员不得不说的二三事——一天一天
  17. 太强了,全面解析缓存应用经典问题
  18. 【PP主数据】工艺路线介绍
  19. 基于springboot+mybatis+mysql+html实现宠物医院管理系统(包含实训报告)
  20. 计算机信息技术管理试题及答案,计算机软考信息技术处理员模拟试题及答案(3)[4]...

热门文章

  1. 注册免费使用腾讯云企业邮箱
  2. css3简单实现页面中出现雪花飘落效果
  3. session session session
  4. varnish 缓存php,php实现监控varnish缓存服务器的状态,php监控varnish缓存
  5. Udp数据接收和发送代码
  6. 解决SVN文件不显示绿色小钩图标问题
  7. 第1章 游戏之乐——连连看游戏设计
  8. 540 万元!全球第一辆会飞的“自行车”:能飞 40 分钟,却不能上路?
  9. HTTP状态码监测分析
  10. 你真的了解中兴吗?带你认识科技品牌 刷新认知