标题: [求助]怎么打开正在运行的进程的具体目录
[打印本页]
作者: djnetbar
时间: 2008-9-25 00:21
标题: [求助]怎么打开正在运行的进程的具体目录
set JC=qq.exe
tasklist|findstr /i %JC%||goto exit
for /f "tokens=1 delims= " %%i in ('tasklist^|find "%JC%"') do set path=%%~fi
start %path%
这样子 不行 希望高人们给我方法谢谢


作者: djnetbar
时间: 2008-9-25 00:22
在线等待
作者: zqz0012005
时间: 2008-9-25 00:41
wmic process where name='qq.exe' get ExecutablePath
作者: djnetbar
时间: 2008-9-25 02:11
楼上说的是BAT语句吗?
怎么有点象SQL..
作者: guolm1225
时间: 2008-9-25 10:26
楼上的楼上用的是wmi命令,可在cmd中使用
作者: bluewaterx
时间: 2008-9-25 12:42
代码如下:
@echo off
setlocal enabledelayedexpansion
echo for each ps in getobject _ >ps.vbs
echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
echo wscript.echo ps.name:next>>ps.vbs
set n=0&for /f "skip=3 delims=" %%i in ('cscript //nologo ps.vbs') do set /a n+=1&set strName!n!=%%i
echo for each ps in getobject _ >ps.vbs
echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
echo wscript.echo ps.executablepath:next >>ps.vbs
set n=0&for /f "skip=3 delims=" %%i in ('cscript //nologo ps.vbs') do set /a n+=1&set strPath!n!=%%i
del /q ps.vbs >nul 2>nul
:lpStart
tasklist
echo\&set cInput=&set /p cInput= 输入要打开路径的进程名:
if not defined cInput goto lpStart
for /l %%i in (1,1,!n!) do call :subGetPath %%i
pause&Exit
:subGetPath
set tmpVal=%1
if /i "!cInput!"=="!strName%tmpVal%!" call :subOpenPath !strPath%tmpVal%!
goto :eof
:subOpenPath
start "" "%~dp1"
goto :eof
作者: djnetbar
时间: 2008-9-25 15:07
好复杂啊..好要用到VBS...
作者: djnetbar
时间: 2008-9-25 15:14
测试6楼的代码了...
不行知道扩展到 盘符
不能扩展到进程的目录..
继续期待高人出现
作者: moniuming
时间: 2008-9-25 15:45
标题: 3楼就是高手
扩展一下3楼的:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic process where "name='qq.exe'" get * /value^|findstr /i "executablepath"') do set "pth=%%~dpa"
echo %pth%
pause>nul
作者: djnetbar
时间: 2008-9-25 16:50
在问下 那个 'qq.exe'
可以换成 set 设置的变量不
作者: moniuming
时间: 2008-9-25 16:59
Quote: |
Originally posted by djnetbar at 2008-9-25 16:50:
在问下 那个 'qq.exe'
可以换成 set 设置的变量不 |
|
为什么不自己试试呢???
作者: zqz0012005
时间: 2008-9-25 17:02
标题: Re 10楼
当然可以
set /p process=请输入:
for /f "skip=1 delims=" %%a in ('wmic process where "name='%process%'" get ExecutablePath') do set "propath=%%~dpa"
作者: bluewaterx
时间: 2008-9-25 18:16
wmic不懂,只会用别的方法,8楼说只能打开盘符,看了下代码,忘了个引号
@echo off
setlocal enabledelayedexpansion
echo for each ps in getobject _ >ps.vbs
echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
echo wscript.echo ps.name:next>>ps.vbs
set n=0&for /f "skip=3 delims=" %%i in ('cscript //nologo ps.vbs') do set /a n+=1&set strName!n!=%%i
echo for each ps in getobject _ >ps.vbs
echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
echo wscript.echo ps.executablepath:next >>ps.vbs
set n=0&for /f "skip=3 delims=" %%i in ('cscript //nologo ps.vbs') do set /a n+=1&set strPath!n!=%%i
del /q ps.vbs >nul 2>nul
:lpStart
tasklist
echo\&set cInput=&set /p cInput= 输入要打开路径的进程名:
if not defined cInput goto lpStart
for /l %%i in (1,1,!n!) do call :subGetPath %%i
pause&Exit
:subGetPath
set tmpVal=%1
if /i "!cInput!"=="!strName%tmpVal%!" call :subOpenPath "!strPath%tmpVal%!"
goto :eof
:subOpenPath
start "" "%~dp1"
goto :eof
作者: djnetbar
时间: 2008-9-25 18:24
谢谢各位大虾帮助 以后要加紧学习了