批处理脚本保存在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\
答
@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
和解析 - 可以得到的工艺特点
不,先生这不符合我的要求很多地方,我想批量自动搜索通过进程中运行给定的进程,给我的工作这个进程的目录没有\ processName.exe –