2017-08-27 122 views
1

運行進程的目錄有沒有辦法保存正在運行的進程的變量的目錄?說我要救mysqld.exe是的完整路徑C:\ Program Files文件\的MySQL \ MySQL服務器5.6 \ BIN,這個批處理腳本應該尋找一個過程目錄並保存它不\ processName.exe,它可行嗎?批處理腳本保存在windows

回答

1

您是否在尋找

set "MYSQLDIR=c:\program files\mysql\mysql server 5.6\bin" 

更新:這是一個有點有點挑剔,你會需要使用PowerShell來獲取路徑,但是這似乎爲我工作:

@echo off 

set "tmpname=%TMP%\fproc%RANDOM%" 
powershell get-process ^| format-list path | findstr %1 > %TMPNAME% 
set /p T1=<%TMPNAME% 
call :get_path result "%T1:~7%" 
echo %result% 

goto:cleanup 

:get_path 
    set "%~1=%~dp2" 
    exit /b 

:cleanup 
    del %TMPNAME% 

將其保存到一個名爲procpath.bat文件,並通過進程名稱:

c:\srv\tmp> procpath pycharm64 
C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\bin\ 
+0

不,先生這不符合我的要求很多地方,我想批量自動搜索通過進程中運行給定的進程,給我的工作這個進程的目錄沒有\ processName.exe –

0
@ECHO OFF 
SETLOCAL 
:: set name of executable to locate. 
:: This one onmy system - adjust to suit 
SET "targetname=boinc.exe" 
CALL :zapvars 
FOR /f "tokens=1*delims==" %%a IN ('wmic process list full') DO IF "%%b" neq "" (
IF "%%a"=="CommandLine" CALL :report 
SET "$%%a=%%b" 
) 
CALL :report 

GOTO :EOF 

:report 
IF NOT DEFINED $processid GOTO zapvars 
IF NOT DEFINED $executablepath GOTO zapvars 
:: select your target executablename here 
SET $executablepath|FINDSTR /i /L /e /c:"\\%targetname%" >NUL 
IF ERRORLEVEL 1 GOTO zapvars 

FOR %%z IN ("%$executablepath%") DO SET "pathwithslosh=%%~dpz 
ECHO PATH without \executablename = "%pathwithslosh:~0,-1%" 
:zapvars 
FOR %%z IN (
CommandLine CSName Description ExecutablePath ExecutionState 
Handle HandleCount InstallDate KernelModeTime MaximumWorkingSetSize 
MinimumWorkingSetSize Name OSName OtherOperationCount 
OtherTransferCount PageFaults PageFileUsage ParentProcessId 
PeakPageFileUsage PeakVirtualSize PeakWorkingSetSize 
Priority PrivatePageCount ProcessId QuotaNonPagedPoolUsage 
QuotaPagedPoolUsage QuotaPeakNonPagedPoolUsage 
QuotaPeakPagedPoolUsage ReadOperationCount ReadTransferCount 
SessionId Status TerminationDate ThreadCount UserModeTime 
VirtualSize WindowsVersion WorkingSetSize WriteOperationCount 
WriteTransferCount 
) DO SET "$%%z=" 
GOTO :eof 

使用wmic和解析 - 可以得到的工藝特點