【问题标题】:Starting an executable using /affinity in cmd.exe (Windows XP)在 cmd.exe (Windows XP) 中使用 /affinity 启动可执行文件
【发布时间】:2013-02-28 21:05:17
【问题描述】:

我正在尝试使用一个经常崩溃的程序,对此的修复之一是将其设置为仅使用一个处理器。 我可以通过任务管理器轻松手动完成此操作,但我更喜欢双击快捷方式的解决方案。

我尝试使用这行代码制作 .bat 文件: C:\Windows\System32\cmd.exe /C start /affinity 1 KSP.exe

但是,它只是拒绝运行。删除 /C 开关只会启动 cmdbox。

尝试在 cmdbox 中键入 /affinity 1 KSP.exe(谢天谢地,cmdbox 从 .bat 文件所在的目录开始,该目录与 .exe 所在的文件夹相同,因此没有问题)只会给出以下错误:

无效的开关 - “/affinity”。

【问题讨论】:

    标签: command-line windows-xp affinity


    【解决方案1】:

    我自己尝试在较旧的 Win XP 32 位设备上运行 KSP 时遇到了同样的问题。 cmd.exe 直到 Vista,IIRC 才收到 /affinity 开关。

    我知道 OP 已有一年多的历史了,但目前对于某些用户来说仍然是个问题。解决方案是使用 Sysinternals 的 psexec.exe 代替 cmd.exe,可以在此处找到:

    http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

    Microsoft 的 Sysinternal 的 psexec 的 -a 标志可以在 Windows XP 上设置处理器亲和性:

    Usage: psexec [\\computer[,computer2[,...] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i
    [session]][-c [-f|-v]][-w directory][-d][-][-a n,n,...] cmd [arguments]
     -a         Separate processors on which the application can run with
                commas where 1 is the lowest numbered CPU. For example,
                to run the application on CPU 2 and CPU 4, enter:
                "-a 2,4"
    

    例如:

    psexec -a 2 cmd /c "E:Games\KSP\KSP.exe"
    

    将在第二个内核上运行 KSP。 (任务管理器中的核心 1)

    只需更正系统的路径并将其放入 .bat 或快捷方式的目标字段中即可。

    顺便说一句,您需要将 PsTools(或简称为 PsExec.exe)解压缩到 C:\Windows 或系统路径中的其他文件夹中,或者将其放在您的 KSP 根目录中。

    【讨论】:

      【解决方案2】:

      首先请注意,您必须通过右键 clic 和 sart 作为管理员或通过创建任务来为您的程序提供管理员权限。

      因此,在您以这些管理员权限启动 cmd 后,您可以通过以下方式启动您的程序:

      <code>`start /AFFINITY 1 /B notepad.exe`</code>
      

      使用procexp,在记事本进程上右击+设置亲和力,你会看到它只使用处理器0。

      在做:

      <code>`start /AFFINITY 1 /B notepad.exe`</code>
      

      您会看到它在处理器 2 上运行。

      那么如果你想让你的进程在一半的核心上运行呢?

      这样做:

      <code>`start /AFFINITY AA /B notepad.exe`</code>
      

      在八核上,它将在处理器 1、3、5、7 上运行

      • /AA 代表一半核心,奇数,(1, 3, 5, 7)
      • /A 表示核心的夸脱,奇数,(1, 3)
      • /F为前半部分,(0, 1, 2, 3)
      • /FF 代表所有,(0, 1, 2, 3, 4, 5, 6, 7)

      问候。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多