bat脚本通过PowerShell修改进程优先级+处理器相关性

2025-12-25 22℃

通过bat脚本使用PowerShell命令修改进程的优先级和处理器相关性,可下载脚本自行编辑修改要调整的进程

下载设置脚本                下载查看脚本

下方为设置脚本代码

 

 

@echo off

chcp 65001 >nul 2>&1  :: 设置UTF-8编码,避免中文乱码

 

:: ===================== 自动提权核心逻辑 =====================

>nul 2>&1 "%SYSTEMROOT%\system32\cacls" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

    echo 检测到当前无管理员权限,正在尝试提权...

    :: 调用PowerShell提权运行当前脚本

    powershell -Command "Start-Process cmd -ArgumentList '/c ""%~dpnx0""' -Verb RunAs" >nul 2>&1

    exit /b

)

 

:: ===================== 核心配置区(重点修改这里) =====================

echo ==============================================

echo     批量修改进程优先级+处理器相关性(PowerShell版 Windows 10专用)

echo ==============================================

:: 配置说明:

:: 优先级值:Realtime/High/AboveNormal/Normal/BelowNormal/Idle

:: 核心掩码:十进制,单个核心=2^编号,多个核心=对应值相加

:: 十进制掩码(PowerShell用)         | 对应核心      

:: 1                                                 | 核心0 

:: 2                                                 | 核心1 

:: 3                                                 | 核心0+1 

:: 1+2+4+8+16+32+64+128=  255 | 核心0-7 

:: 65535                                          | 核心0-15   

 

:: =====================  先统一设置所有进程为默认值 =====================

echo 正在将所有进程设置为默认值:Normal优先级 + 核心7(掩码128)... 

powershell -Command "try {     $allProcesses = Get-Process -ErrorAction SilentlyContinue; $defaultPriority = 'Normal';$defaultAffinity = 128;  $count = 0;  foreach ($proc in $allProcesses) { try {   if ($proc.Name -in 'System', 'Idle', 'smss', 'csrss', 'wininit', 'lsass') {continue;  } $proc.PriorityClass = $defaultPriority; $proc.ProcessorAffinity = $defaultAffinity;$proc.Refresh(); $count++;  } catch {  continue;  }  } Write-Host "? 成功为 $count 个进程设置默认属性";} catch { Write-Host "? 批量设置默认值失败:" $_.Exception.Message;}"

echo 开始设置指定进程的自定义属性...

timeout /t 1 /nobreak >nul

cls

 

 

:: ============   再设置自定义配置 =====================

:: 格式:call :SetProcessAttr "进程名(不含exe)" "优先级" "核心掩码(十进制)" "核心备注"

:: call :SetProcessAttr "game" "Realtime" "127" "核心0-6" 

:: 可继续添加更多进程,按上述格式即可(进程名不要带后缀)

:: ==============进程自定义配置 ==============

call :SetProcessAttr "msedge" "normal" "64" "核心6" 

call :SetProcessAttr "explorer" "normal" "64" "核心6" 

call :SetProcessAttr "RTSS" "AboveNormal" "64" "核心6"

call :SetProcessAttr "RTSSHooksLoader64" "AboveNormal" "64" "核心6"

call :SetProcessAttr "EncoderServer64" "AboveNormal" "64" "核心6"

call :SetProcessAttr "amdow" "AboveNormal" "64" "核心6"

call :SetProcessAttr "AMDRSServ" "AboveNormal" "64" "核心6"

call :SetProcessAttr "AMDRSSrcExt" "AboveNormal" "64" "核心6"

call :SetProcessAttr "cncmd" "AboveNormal" "64" "核心6"

call :SetProcessAttr "RadeonSoftware" "AboveNormal" "64" "核心6"

call :SetProcessAttr "steamcommunity_302.caddy" "normal" "64" "核心6"

call :SetProcessAttr "steamcommunity_302.cli" "normal" "64" "核心6"

call :SetProcessAttr "Steamcommunity_302" "normal" "64" "核心6"

call :SetProcessAttr "steam" "normal" "64" "核心6"

call :SetProcessAttr "steamservice" "normal" "64" "核心6"

call :SetProcessAttr "steamwebhelper" "normal" "64" "核心6"

call :SetProcessAttr "openp2p" "normal" "64" "核心6" 

:: ========== Windows 10系统网络相关系统进程 ==========

call :SetProcessAttr "lsass" "Normal" "64" "核心6"           :: 本地安全授权子系统

call :SetProcessAttr "tcpip.sys" "Normal" "64" "核心6"       :: TCP/IP驱动进程

call :SetProcessAttr "dnsrslvr" "Normal" "64" "核心6"        :: DNS解析器进程

call :SetProcessAttr "iphlpsvc" "Normal" "64" "核心6"        :: IP帮助服务进程

call :SetProcessAttr "netbt.sys" "Normal" "64" "核心6"       :: NetBIOS传输驱动

call :SetProcessAttr "netman" "Normal" "64" "核心6"          :: 网络连接管理器

call :SetProcessAttr "nmagent" "Normal" "64" "核心6"         :: 网络管理代理

call :SetProcessAttr "rasman" "Normal" "64" "核心6"          :: 远程访问连接管理器

call :SetProcessAttr "sppsvc" "Normal" "64" "核心6"          :: 软件保护服务

:: ========== Windows 10系统硬件相关系统进程 ==========

call :SetProcessAttr "disk.sys" "Normal" "64" "核心6"         :: 磁盘驱动进程

call :SetProcessAttr "ntoskrnl.exe" "Normal" "64" "核心6"    :: Windows内核进程

call :SetProcessAttr "win32k.sys" "Normal" "64" "核心6"      :: 窗口子系统进程

call :SetProcessAttr "dxgkrnl.sys" "Normal" "64" "核心6"     :: DirectX内核进程

call :SetProcessAttr "usbhub.sys" "Normal" "64" "核心6"      :: USB集线器驱动

call :SetProcessAttr "hidclass.sys" "Normal" "64" "核心6"    :: HID类驱动进程

 

echo 所有进程属性修改完成!

pause

exit /b

 

:: ===================== 核心函数:PowerShell设置进程属性 =====================

:SetProcessAttr

set "process_name=%~1"    :: PowerShell的Get-Process不需要后缀

set "priority=%~2"        :: PowerShell优先级值(首字母大写,无空格)

set "affinity_mask=%~3"   :: 十进制核心掩码

set "affinity_remark=%~4"

 

echo 正在处理 [%process_name%] 目标优先级:%priority% 目标核心:%affinity_remark% (十进制掩码:%affinity_mask%)

 

:: 执行PowerShell命令:同时修改优先级和相关性

powershell -Command "try { $processes = Get-Process -Name '%process_name%' -ErrorAction Stop; foreach ($proc in $processes) { Write-Host '进程ID:' $proc.Id; $proc.PriorityClass = '%priority%'; Write-Host '优先级修改完成'; $proc.ProcessorAffinity = %affinity_mask%; Write-Host '相关性修改完成'; $proc.Refresh() }; Write-Host '全部修改成功' } catch { Write-Host '错误详情:' $_.Exception.Message }"

 

:: 检查执行结果

if %errorlevel% equ 0 (

    echo 处理完成

) else (

    echo 修改失败! 可能原因:参数错误 / 掩码超出CPU核心数 / 权限不足

)

cls

exit /b

标签: 游戏问题

非特殊说明,本博所有文章均为博主原创。

上一篇 没有了
下一篇 A卡,FreeSync设置