要从运行的批处理脚本中获取PID(进程ID),可以使用Windows的tasklist
命令结合findstr
命令来实现。
以下是一个示例的批处理脚本,演示如何获取正在运行的批处理脚本的PID:
@echo off
REM 获取当前批处理脚本的文件名
set SCRIPT_NAME=%~n0%~x0
REM 使用tasklist命令获取所有正在运行的进程,并使用findstr命令过滤出包含批处理脚本文件名的行
for /f "tokens=2" %%a in ('tasklist /nh /fi "imagename eq cmd.exe" ^| findstr /i "%SCRIPT_NAME%"') do (
REM 输出找到的进程的PID
echo PID: %%a
)
在上面的示例中,我们首先使用%~n0%~x0
获取当前批处理脚本的文件名。然后,我们使用tasklist
命令获取所有正在运行的进程,并使用findstr
命令过滤出包含批处理脚本文件名的行。最后,我们使用for
循环和echo
语句输出找到的进程的PID。
运行这个批处理脚本后,它将输出正在运行的批处理脚本的PID。
请注意,这种方法假设批处理脚本是通过cmd.exe
运行的。如果你使用其他方式运行批处理脚本,可能需要相应地调整tasklist
命令中的筛选条件。
领取专属 10元无门槛券
手把手带您无忧上云