我正在使用这段代码在活动进程列表中运行循环,以按名称标识进程以更改优先级。
TIMEOUT /T 1
for /F "tokens=1,2" %%i in ('tasklist /FI "IMAGENAME eq java.exe" /fo table /nh') do set pid=%%j
echo %pid%
wmic process where processid=%pid% CALL setpriority 128
exit
我的问题是我有多个名为“java.exe”的进程,但我希望它们都受我的代码影响。我怎样才能做到这一点?
for /F "tokens=1,2" %%i in ('tasklist /FI "IMAGENAME eq java.exe" /fo table /nh') do (
echo %%j
wmic process where processid=%%j CALL setpriority 128
)
(另)
此方法允许您使用变量pid
,但您需要使用延迟扩展。
SETLOCAL ENABLEDELAYEDEXPANSION
for /F "tokens=1,2" %%i in ('tasklist /FI "IMAGENAME eq java.exe" /fo table /nh') do set pid=%%j
echo !pid!
wmic process where processid=!pid! CALL setpriority 128
exit
setlocal
行允许cmd在运行时处理变量,而不是短语时间。!
表示在运行时处理变量,而不是短语时间。