批处理如何获取进程所在目录,不是文件路径
发布网友
发布时间:2023-10-12 01:00
我来回答
共2个回答
热心网友
时间:2024-11-23 04:18
就按你的方法 剩下的就是处理 怎么从 路径里提取 最后一个文件名了
方法 1
for /f "tokens=1,2,3,4,5,6,7,8 delims=\" %%i in ('echo %path%') do (
if "%%j"=="" echo %%i & goto :eo
if "%%k"=="" echo %%j & goto :eo
if "%%l"=="" echo %%k & goto :eo
if "%%m"=="" echo %%l & goto :eo
if "%%n"=="" echo %%m & goto :eo
if "%%o"=="" echo %%n & goto :eo
if "%%p"=="" echo %%o & goto :eo
if "%%q"=="" echo %%p & goto :eo
)
:eo
方法 2
for /l %%i in (2,1,40) do if "!path:~-%%i,1!"=="\" (set /a b=%%i-1 & goto :eo)
:eo
echo !path:~-%b%,-1!
把 这两段分别放在你写的最后一个PAUSE的前面
有什么不明白的 给我留言就可以了
第二种方法 @ECHO OFF 再加个 setlocal enabledelayedexpansion 就可以了
热心网友
时间:2024-11-23 04:19
我花了3秒钟看题:
@echo off
set "task=qq.exe"
echo 开始查询进程是否存在
tasklist|find /i "%task%">nul
if %errorlevel% equ 0 (
for /f "eol= delims== tokens=2" %%i in ('wmic process where "name='%task%'" get executablepath /value') do (
echo 您查找的进程 %task% 的路径是:%%~dpi
set path=%%~dpi
)
)
pause