windows batch命令用来确定进程的工作目录

为什么我要问的是我的程序使用的第三方软件有时会留下孤立的进程,这些进程没有链接回我的程序或第三方进程.随着时间的推移,这些孤儿进程开始累积并消耗大量资源.我想定期杀掉它们,但为了让我这样做,我需要确定它们是由我的程序而不是其他程序创建的.我查看了Process Explorer中的孤立进程,当查看进程的属性时,我看到一个名为“Current Directory”的字段.孤立进程的当前目录是我的程序的安装目录.这会让我放心,我正在杀死我的程序创建的进程.

由于这些进程是由第三方创建的,因此我需要在创建它们之后通过对它们运行taskkill来杀死它们.有没有办法在批处理文件中使用开箱即用的Windows命令来确定进程的当前工作目录?如果这可以通过最好的wmic查询来完成,但是在使用wmic时我似乎无法找到当前的工作目录.我假设如果Process Explorer能够获得此信息,我应该能够通过一些批处理命令获得它.

tlistWDK到救援!其输出的第二行(“CWD:…”)显示进程的工作目录:
> tlist 944
 944 postgres.exe
   CWD:     D:\Lab\Database\pgsql\test\
   CmdLine: "D:/Tools/pgsql/bin/postgres.exe"  -D "."
   VirtualSize:   221116 KB   PeakVirtualSize:   242620 KB
   WorkingSetSize: 17076 KB   PeakWorkingSetSize: 19336 KB
   NumberOfThreads: 4
   9084 Win32StartAddr:0x00000000 LastErr:0x00000000 State:Waiting
   8504 Win32StartAddr:0x00000000 LastErr:0x000000b7 State:Waiting
   8616 Win32StartAddr:0x00000000 LastErr:0x00000000 State:Waiting
   7468 Win32StartAddr:0x00000000 LastErr:0x00000000 State:Waiting
    9.3.5.14202 shp  0x0000000000400000  D:\Tools\pgsql\bin\postgres.exe
 6.1.7601.18247 shp  0x00000000770D0000  C:\Windows\SYstem32\ntdll.dll
 ...

有关详细信息,请参阅the doc.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...