批处理脚本保存在windows

问题描述:

运行进程的目录有没有办法保存正在运行的进程的变量的目录?说我要救mysqld.exe是的完整路径C:\ Program Files文件\的MySQL \ MySQL服务器5.6 \ BIN,这个批处理脚本应该寻找一个过程目录并保存它不\ processName.exe,它可行吗?批处理脚本保存在windows

您是否在寻找

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 –

@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和解析 - 可以得到的工艺特点