gpt4 book ai didi

windows - TaskList 未检测到/不支持超过 21 个字符的进程名称

转载 作者:可可西里 更新时间:2023-11-01 11:42:00 25 4
gpt4 key购买 nike

我希望我的批处理文件在继续代码之前检查进程名称是否存在并且正在使用 TaskList 运行,但不幸的是,如果进程名称超过 21 个字符,它将无法工作。有什么方法可以取消字符限制或支持超过 21 个字符的进程名称?

我尝试使用任何其他不超过 21 个字符的进程名称,代码运行完美。我没有尝试任何其他方法,因为我一直在网上查找但找不到与我的确切问题匹配的任何内容,或者不知道为什么它不会检测到太长的进程名称。我减少了我的代码,使其更短且更易于理解。

@echo off

set ProcessName=PROCESSNAME

for /f "tokens=4-7 delims=[.] " %%i in ('ver') do (if %%i==Version (set v=%%j.%%k) else (set version=%%i.%%j))

if "%version%" == "10.0" goto win10

:win10
setlocal
echo Press any key to start...
pause >nul

tasklist /fi "IMAGENAME eq %ProcessName%.exe" 2>NUL | find /I /N "%ProcessName%.exe">NUL
if "%ERRORLEVEL%"=="1" (
goto error
)

echo Process detected.
pause
exit

:error
echo WARNING! This process is not running. Make sure it is running or written properly.
pause

要对此进行测试,您可以创建一个伪造的 .exe 并为其指定一个长名称,然后在这一行替换该名称:

set ProcessName=PROCESSNAME

我希望支持任何包含 22 个字符或更多字符的进程名称。

最佳答案

您可以使用/fo 开关更改tasklist 的输出格式:

/FO    format           Specifies the output format.
Valid values: "TABLE", "LIST", "CSV".

将格式更改为 CSV 允许使用更大的进程名称。

试试这个:

tasklist /fo csv /fi "IMAGENAME eq %ProcessName%.exe" 2>NUL | find /I /N "%ProcessName%.exe">NUL

关于windows - TaskList 未检测到/不支持超过 21 个字符的进程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56569414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com