|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『楼 主』:
[已解决]如何获取进程路径?
比如我要获得进程名为task.exe的路径,并用CD定位到该文件夹,然后用DIR列出该文件夹下的所有文件,P处理如何实现?
请帮忙完善以下代码,先谢谢了!~
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && (
for /f "tokens=*" %%j in ('dir /a-d /b /s !drive!\task.exe 2^>nul') do if not "%%j"=="" goto scan0
)
)
goto :EOF
:scan0
echo task.exe它位于......
pause
[ Last edited by luckboy45 on 2008-4-27 at 04:39 PM ]
|
逍遥@浪子@反病毒 |
|
2008-4-19 17:57 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『第
2 楼』:
汗....难道没兄弟会帮我写出来么?貌似都不在...
|
逍遥@浪子@反病毒 |
|
2008-4-19 21:12 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
3 楼』:
有一个思路:
提供一个思路吧:使用tasklist输出所有进程列表,但问题是我这里列表没有程序的路径啊,不知道兄弟那里有不?
|
批处理之家新域名:www.bathome.net |
|
2008-4-19 21:31 |
|
|
abcd
银牌会员
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
4 楼』:
wmic process where name="task.exe" get executablepath /value
|
|
2008-4-19 21:44 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『第
5 楼』:
4楼兄弟,貌似你对WMIC比较在行,有好的资料推荐点或者给大家分享下啊!~
[ Last edited by luckboy45 on 2008-4-27 at 04:11 PM ]
|
逍遥@浪子@反病毒 |
|
2008-4-27 14:10 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
6 楼』:
vbs我不会,但确实很实用,效率高。
我转个vbs的:
for each ps in getobject _
("winmgmts:\\.\root\cimv2:win32_process").instances_
wscript.echo ps.handle&vbtab&ps.name&vbtab&ps.executablepath:next
|
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~ 空间~~cmd学习 |
|
2008-4-27 14:33 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
7 楼』:
看了下。VBS好用
Dim fso, f, f1, fc, s
set fso=Createobject("Scripting.filesystemobject")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_process where name='cmd.exe'")
For Each objItem in colItems
if objitem.ExecutablePath<>"" then
a=fso.getparentfoldername(objitem.ExecutablePath)
end if
Next
Set f = fso.GetFolder(a)
Set fc = f.Files
set fd = f.subfolders
For Each f1 in fc
s = s & f1.name&chr(13)
next
for each f2 in fd
s=s&f2.name&chr(13)
next
msgbox s 这下全给你列出来,只是文件太多
只要把你的进程名字列在where name后面就行了
[ Last edited by huahua0919 on 2008-4-27 at 03:22 PM ]
|
|
2008-4-27 14:45 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『第
8 楼』:
很遗憾,楼上兄弟,代码提示...无效的过程调用或参数...行11,第1个字符.....
因为VBS的滥用,容易引起杀软报毒,所以还是希望能有高人写出BAT版...
毕竟,对于BAT我还懂一点,VBS完全搞不明白...汗....
|
逍遥@浪子@反病毒 |
|
2008-4-27 15:47 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
|
2008-4-27 16:05 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『第
10 楼』:
呵呵,多谢兄弟提醒,我试了另一个进程,成功了,4楼兄弟对WMIC很在行的说...呵呵,可是怎么才能实现用CD定位到该文件夹,然后用DIR列出该文件夹下的所有文件呢?
还有,路径列出后如何输出到文本文件?麻烦各位兄弟帮忙了!~
|
逍遥@浪子@反病毒 |
|
2008-4-27 16:10 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
11 楼』:
把你定位到的路径中的“\”替换成“.”
然后取出%%~ni
就是你的文件所在文件夹
|
|
2008-4-27 16:14 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『第
12 楼』:
我是这样写的...
wmic process where name="tm.exe" get executablepath /value >>c:\12.txt
下面是输出到12.TXT里面的内容
ExecutablePath=C:\Program Files\Tencent\QQ\TMDlls\TM.exe
ExecutablePath=C:\Program Files\Tencent\QQ\TMDlls\TM.exe
问题是我要自动实现提取C:\Program Files\Tencent\QQ\TMDlls\下面的所有文件并输出文件列表到22.TXT,请帮忙写出来学习下!~
|
逍遥@浪子@反病毒 |
|
2008-4-27 16:19 |
|
|
huahua0919
银牌会员
积分 1608
发帖 780
注册 2007-10-7
状态 离线
|
『第
13 楼』:
@echo off
for /f "skip=6 delims== tokens=2" %%i in ('wmic process where "name='cmd.exe'" get executablepath /value') do (
echo %%~dpi
set path=%%~dpi
call :xp %%path%%
)
:xp
dir /a/b %~1
pause
|
|
2008-4-27 16:33 |
|
|
luckboy45
中级用户
积分 487
发帖 212
注册 2007-4-1
状态 离线
|
『第
14 楼』:
谢谢兄弟了!~学习了点东西,感谢你的耐心指导,呵呵!~
|
逍遥@浪子@反病毒 |
|
2008-4-27 16:38 |
|