标题: [已解决]请教!如果用批处理更改某进程的CPU关联和优先级? [打印本页]
作者: avi33 时间: 2015-9-12 22:51 标题: [已解决]请教!如果用批处理更改某进程的CPU关联和优先级?
本帖最后由 avi33 于 2015-9-13 00:39 编辑
大大们,请教一下
怎么用批处理更改某个进程的CPU关联?
比如我想让红警2的程序game.exe和ra2.exe只关联CPU0,请问怎么写?
还有修改这两个进程的优先级为“实时”!
谢谢!
作者: pcl_test 时间: 2015-9-12 23:36
本帖最后由 pcl_test 于 2015-9-12 23:41 编辑
设置进程优先级为“实时”- @echo off
- for %%a in ("game.exe" "ra2.exe") do wmic process where name="%%~a" call setpriority 256
- pause
- ::64 Idle 优先级–低
- ::16384 Below Normal 优先级–低于标准
- ::32 Normal 优先级–标准
- ::32768 Above Normal 优先级–高于标准
- ::128 High Priority 优先级–高
- ::256 Real Time 优先级–实时
复制代码
作者: avi33 时间: 2015-9-12 23:45
谢谢,请问指定CPU0或CPU1运行,这个可以实现吗?
作者: avi33 时间: 2015-9-12 23:50
如果批处理不能实现,其他的能实现吗?非常感谢
作者: pcl_test 时间: 2015-9-13 00:07
回复 4# avi33
参看下http://www.bathome.net/thread-13677-1-1.html
作者: avi33 时间: 2015-9-13 00:36
谢谢!:)
作者: pcl_test 时间: 2015-9-13 13:32
本帖最后由 pcl_test 于 2015-9-13 13:54 编辑
- @echo off 2>nul 3>nul
- ::需要安装.Net Framework 2.0及以上
- set "netpath=%systemroot%\Microsoft.NET\Framework"
- for /f "delims=" %%a in ('dir /ad /b "%netpath%\v?.*"') do (
- if exist "%netpath%\%%a\csc.exe" (
- set "cscpath=%netpath%\%%a\csc.exe"
- goto :0
- )
- )
- :0
- >"%tmp%\$" more +15 "%~f0"
- "%cscpath%" /out:"%tmp%\$SetAffinity.exe" "%tmp%\$"
- "%tmp%\$SetAffinity.exe"
- pause&exit
- ::C# codes 参考http://caoshugui.blog.163.com/blog/static/25375653200910115329888/
- using System;
- using System.Diagnostics;
- namespace SetAffinity{
- class Myclass{
- static void Main(string[] args){
- //设置需修改CPU相关性的进程名
- String[] proname = new String[]{"game","ra2"};
- for (int i=0; i<proname.Length; i++){
- Process pro = Process.GetProcessesByName(proname[i])[0];
- //设置CPU相关性为cpu0
- pro.ProcessorAffinity = (System.IntPtr)1;
- }
- }
- }
- }
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |