<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Batch-Archiv - flohs blog</title>
	<atom:link href="https://blog.florianehrle.de/en/category/scripting/batch-en/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.florianehrle.de/en/category/scripting/batch-en/</link>
	<description>reboot tut gut</description>
	<lastBuildDate>Wed, 04 Feb 2026 16:03:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://blog.florianehrle.de/wp-content/uploads/2025/10/cropped-icon-32x32.png</url>
	<title>Batch-Archiv - flohs blog</title>
	<link>https://blog.florianehrle.de/en/category/scripting/batch-en/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Windows: Set process affinity</title>
		<link>https://blog.florianehrle.de/en/2026/02/01/windows-set-process-affinity/</link>
					<comments>https://blog.florianehrle.de/en/2026/02/01/windows-set-process-affinity/#respond</comments>
		
		<dc:creator><![CDATA[Florian Ehrle]]></dc:creator>
		<pubDate>Sun, 01 Feb 2026 05:36:00 +0000</pubDate>
				<category><![CDATA[Batch]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://blog.florianehrle.de/?p=8074</guid>

					<description><![CDATA[<p>In the past, this function was probably rarely used but since the basic physical structure of x86 processors has changed significantly in recent years, we can now be [&#8230;]</p>
<p>Der Beitrag <a href="https://blog.florianehrle.de/en/2026/02/01/windows-set-process-affinity/" data-wpel-link="internal">Windows: Set process affinity</a> erschien zuerst auf <a href="https://blog.florianehrle.de/en" data-wpel-link="internal">flohs blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div style="height:18px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<div style="height:18px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">In the past, this function was probably rarely used but since the basic physical structure of x86 processors has changed significantly in recent years, we can now be glad that this API function exists. We are talking about what is known as process affinity: this allows you to determine on which logical processor a task should be executed.</p>



<p class="wp-block-paragraph">The potential applications become apparent when considering how modern CPUs (including ARM) function. Intel, in particular now offers “performance-” and “efficiency cores”. AMD has models such as the Ryzen 9 5900X and <strong><a href="https://amzn.to/45HUcTG" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">5950X*</a></strong>, which have two chiplets with 6 and 8 cores respectively, and only the first chiplet achieves the advertised clock speeds because it was built with better silicon quality.</p>



<p class="wp-block-paragraph">The scheduler in the operating system normally distributes processes to logical cores or threads on its own, i.e., it pushes performance-hungry processes to cores that are known to be powerful. However, if you don&#8217;t want to rely on this, it is possible to force it.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">Compatibility</h4>



<p class="wp-block-paragraph">The underlying Windows functions based on “<strong>winbase.h</strong>” have existed since Windows XP and Windows Server 2003. The library is Kernel32.lib with the associated Kernel32.dll. Process affinity can therefore be set on all operating systems since Windows XP.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">Functionality</h4>



<p class="wp-block-paragraph">It is important to note that the majority of all x86 processors support “simultaneous multithreading” or &#8220;hyperthreading&#8221; and can therefore execute more than one thread per physical processor core. Hence the term “logical processor” which refers to each thread and <em>not</em> each core.</p>



<p class="wp-block-paragraph">To stick with the example of the AMD Ryzen 9 5950X: This CPU has 16 physical cores that offer 32 threads with active SMT. So how many CPUs does the process affinity mask / system see?<br>That&#8217;s right, <strong>32</strong>.</p>



<p class="wp-block-paragraph">This is important to keep in mind. The internal distribution follows the initialization logic of the system, i.e., in the example of a 4-core / 8-thread processor with active SMT:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-center" data-align="center">Physical core</th><th class="has-text-align-center" data-align="center">Physical Thread 1</th><th class="has-text-align-center" data-align="center">Physical Thread 2</th><th class="has-text-align-center" data-align="center">Logical processor, physical</th><th class="has-text-align-center" data-align="center">Logical processor, SMT</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">0</td><td class="has-text-align-center" data-align="center">0</td><td class="has-text-align-center" data-align="center">1</td><td class="has-text-align-center" data-align="center">CPU0</td><td class="has-text-align-center" data-align="center">CPU1</td></tr><tr><td class="has-text-align-center" data-align="center">1</td><td class="has-text-align-center" data-align="center">2</td><td class="has-text-align-center" data-align="center">3</td><td class="has-text-align-center" data-align="center">CPU2</td><td class="has-text-align-center" data-align="center">CPU3</td></tr><tr><td class="has-text-align-center" data-align="center">2</td><td class="has-text-align-center" data-align="center">4</td><td class="has-text-align-center" data-align="center">5</td><td class="has-text-align-center" data-align="center">CPU4</td><td class="has-text-align-center" data-align="center">CPU5</td></tr><tr><td class="has-text-align-center" data-align="center">3</td><td class="has-text-align-center" data-align="center">6</td><td class="has-text-align-center" data-align="center">7</td><td class="has-text-align-center" data-align="center">CPU6</td><td class="has-text-align-center" data-align="center">CPU7</td></tr></tbody></table></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">With SMT disabled it would look like this:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-center" data-align="center">Physical core</th><th class="has-text-align-center" data-align="center">Physical Thread 1</th><th class="has-text-align-center" data-align="center">Physical Thread 2</th><th class="has-text-align-center" data-align="center">Logical processor, physical</th><th class="has-text-align-center" data-align="center">Logical processor, SMT</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">0</td><td class="has-text-align-center" data-align="center">0</td><td class="has-text-align-center" data-align="center">&#8211;</td><td class="has-text-align-center" data-align="center">CPU0</td><td class="has-text-align-center" data-align="center">&#8211;</td></tr><tr><td class="has-text-align-center" data-align="center">1</td><td class="has-text-align-center" data-align="center">1</td><td class="has-text-align-center" data-align="center">&#8211;</td><td class="has-text-align-center" data-align="center">CPU1</td><td class="has-text-align-center" data-align="center">&#8211;</td></tr><tr><td class="has-text-align-center" data-align="center">2</td><td class="has-text-align-center" data-align="center">2</td><td class="has-text-align-center" data-align="center">&#8211;</td><td class="has-text-align-center" data-align="center">CPU2</td><td class="has-text-align-center" data-align="center">&#8211;</td></tr><tr><td class="has-text-align-center" data-align="center">3</td><td class="has-text-align-center" data-align="center">3</td><td class="has-text-align-center" data-align="center">&#8211;</td><td class="has-text-align-center" data-align="center">CPU3</td><td class="has-text-align-center" data-align="center">&#8211;</td></tr></tbody></table></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">Manual usage</h4>



<p class="wp-block-paragraph">It&#8217;s quite simple: The process must be running. Then start the Task Manager, switch to the detailed view and right-click on the process. Clicking on “<em>Set Affinity</em>” opens a dialog box where you can select exactly which logical processors the process should run on and which it should not:</p>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="699" height="683" data-id="8050" src="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr1e.png" alt="" class="wp-image-8050" srcset="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr1e.png 699w, https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr1e-300x293.png 300w" sizes="(max-width: 699px) 100vw, 699px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="699" height="683" data-id="8051" src="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr2.1e.png" alt="" class="wp-image-8051" srcset="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr2.1e.png 699w, https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr2.1e-300x293.png 300w" sizes="(max-width: 699px) 100vw, 699px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="699" height="683" data-id="8052" src="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr3e.png" alt="" class="wp-image-8052" srcset="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr3e.png 699w, https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr3e-300x293.png 300w" sizes="(max-width: 699px) 100vw, 699px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="699" height="683" data-id="8053" src="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr4.png" alt="" class="wp-image-8053" srcset="https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr4.png 699w, https://blog.florianehrle.de/wp-content/uploads/2026/01/taskmgr4-300x293.png 300w" sizes="auto, (max-width: 699px) 100vw, 699px" /></figure>
</figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">In SysInternals&#8217; “Process Explorer” this also works via the context menu of the process.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">Permanent application to a process</h4>



<p class="wp-block-paragraph">Now it gets a little more complex: The function works with bit masks. So in order to determine exactly which logical processors a task should run on, some calculations are required:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-center" data-align="center">Logical processor</th><th class="has-text-align-center" data-align="center">Decimal</th><th class="has-text-align-center" data-align="center">2 x Decimal -1</th><th class="has-text-align-center" data-align="center">Hexadecimal</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">CPU0</td><td class="has-text-align-center" data-align="center">1</td><td class="has-text-align-center" data-align="center">1</td><td class="has-text-align-center" data-align="center">1</td></tr><tr><td class="has-text-align-center" data-align="center">CPU1</td><td class="has-text-align-center" data-align="center">2</td><td class="has-text-align-center" data-align="center">3</td><td class="has-text-align-center" data-align="center">2</td></tr><tr><td class="has-text-align-center" data-align="center">CPU2</td><td class="has-text-align-center" data-align="center">4</td><td class="has-text-align-center" data-align="center">7</td><td class="has-text-align-center" data-align="center">4</td></tr><tr><td class="has-text-align-center" data-align="center">CPU3</td><td class="has-text-align-center" data-align="center">8</td><td class="has-text-align-center" data-align="center">15</td><td class="has-text-align-center" data-align="center">8</td></tr></tbody></table></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">To find out the bit mask, the easiest way is to start the calculator in Windows and switch to “<strong>Programmer</strong>” mode:</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="695" height="679" data-id="8057" src="https://blog.florianehrle.de/wp-content/uploads/2026/01/calc1e.png" alt="" class="wp-image-8057" srcset="https://blog.florianehrle.de/wp-content/uploads/2026/01/calc1e.png 695w, https://blog.florianehrle.de/wp-content/uploads/2026/01/calc1e-300x293.png 300w" sizes="auto, (max-width: 695px) 100vw, 695px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="695" height="679" data-id="8058" src="https://blog.florianehrle.de/wp-content/uploads/2026/01/calc2e.png" alt="" class="wp-image-8058" srcset="https://blog.florianehrle.de/wp-content/uploads/2026/01/calc2e.png 695w, https://blog.florianehrle.de/wp-content/uploads/2026/01/calc2e-300x293.png 300w" sizes="auto, (max-width: 695px) 100vw, 695px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="695" height="679" data-id="8059" src="https://blog.florianehrle.de/wp-content/uploads/2026/01/calc3.png" alt="" class="wp-image-8059" srcset="https://blog.florianehrle.de/wp-content/uploads/2026/01/calc3.png 695w, https://blog.florianehrle.de/wp-content/uploads/2026/01/calc3-300x293.png 300w" sizes="auto, (max-width: 695px) 100vw, 695px" /></figure>
</figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Then simply add up the decimal numbers of the desired logical processors and see what the value is when converted to hexadecimal. That is then the required bit mask. If, for example, you specifically want the process to run on either core 0 or core 3, that is also possible:<br>1 + 8 equals 9, which is also 9 in hexadecimal, so “9” is the bit mask.</p>



<p class="wp-block-paragraph">For CPUs with many cores and / or threads, the numbers quickly become big. The limit before NUMA restrictions occur and make the process more complex is 64 logical processors.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">Table for up to 32 logical processors</h4>



<p class="wp-block-paragraph">For simplicity&#8217;s sake, here is an overview table:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-center" data-align="center">Physical processor</th><th class="has-text-align-center" data-align="center">Logical processor</th><th class="has-text-align-center" data-align="center">Decimal</th><th class="has-text-align-center" data-align="center">2 x Decimal -1</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">Core 0 Thread 1</td><td class="has-text-align-center" data-align="center">CPU0</td><td class="has-text-align-center" data-align="center">(2<sup>0</sup>) = 1</td><td class="has-text-align-center" data-align="center">1</td></tr><tr><td class="has-text-align-center" data-align="center">Core 0 Thread 2</td><td class="has-text-align-center" data-align="center">CPU1</td><td class="has-text-align-center" data-align="center">(2<sup>1</sup>) = 2</td><td class="has-text-align-center" data-align="center">3</td></tr><tr><td class="has-text-align-center" data-align="center">Core 1 Thread 1</td><td class="has-text-align-center" data-align="center">CPU2</td><td class="has-text-align-center" data-align="center">(2<sup>2</sup>) = 4</td><td class="has-text-align-center" data-align="center">7</td></tr><tr><td class="has-text-align-center" data-align="center">Core 1 Thread 2</td><td class="has-text-align-center" data-align="center">CPU3</td><td class="has-text-align-center" data-align="center">(2<sup>3</sup>) = 8</td><td class="has-text-align-center" data-align="center">15</td></tr><tr><td class="has-text-align-center" data-align="center">Core 2 Thread 1</td><td class="has-text-align-center" data-align="center">CPU4</td><td class="has-text-align-center" data-align="center">(2<sup>4</sup>) = 16</td><td class="has-text-align-center" data-align="center">31</td></tr><tr><td class="has-text-align-center" data-align="center">Core 2 Thread 2</td><td class="has-text-align-center" data-align="center">CPU5</td><td class="has-text-align-center" data-align="center">(2<sup>5</sup>) = 32</td><td class="has-text-align-center" data-align="center">63</td></tr><tr><td class="has-text-align-center" data-align="center">Core 3 Thread 1</td><td class="has-text-align-center" data-align="center">CPU6</td><td class="has-text-align-center" data-align="center">(2<sup>6</sup>) = 64</td><td class="has-text-align-center" data-align="center">127</td></tr><tr><td class="has-text-align-center" data-align="center">Core 3 Thread 2</td><td class="has-text-align-center" data-align="center">CPU7</td><td class="has-text-align-center" data-align="center">(2<sup>7</sup>) = 128</td><td class="has-text-align-center" data-align="center">255</td></tr><tr><td class="has-text-align-center" data-align="center">Core 4 Thread 1</td><td class="has-text-align-center" data-align="center">CPU8</td><td class="has-text-align-center" data-align="center">(2<sup>8</sup>) = 256</td><td class="has-text-align-center" data-align="center">511</td></tr><tr><td class="has-text-align-center" data-align="center">Core 4 Thread 2</td><td class="has-text-align-center" data-align="center">CPU9</td><td class="has-text-align-center" data-align="center">(2<sup>9</sup>) = 512</td><td class="has-text-align-center" data-align="center">1023</td></tr><tr><td class="has-text-align-center" data-align="center">Core 5 Thread 1</td><td class="has-text-align-center" data-align="center">CPU10</td><td class="has-text-align-center" data-align="center">(2<sup>10</sup>) = 1024</td><td class="has-text-align-center" data-align="center">2047</td></tr><tr><td class="has-text-align-center" data-align="center">Core 5 Thread 2</td><td class="has-text-align-center" data-align="center">CPU11</td><td class="has-text-align-center" data-align="center">(2<sup>11</sup>) = 2048</td><td class="has-text-align-center" data-align="center">4095</td></tr><tr><td class="has-text-align-center" data-align="center">Core 6 Thread 1</td><td class="has-text-align-center" data-align="center">CPU12</td><td class="has-text-align-center" data-align="center">(2<sup>12</sup>) = 4096</td><td class="has-text-align-center" data-align="center">8191</td></tr><tr><td class="has-text-align-center" data-align="center">Core 6 Thread 2</td><td class="has-text-align-center" data-align="center">CPU13</td><td class="has-text-align-center" data-align="center">(2<sup>13</sup>) = 8192</td><td class="has-text-align-center" data-align="center">16383</td></tr><tr><td class="has-text-align-center" data-align="center">Core 7 Thread 1</td><td class="has-text-align-center" data-align="center">CPU14</td><td class="has-text-align-center" data-align="center">(2<sup>14</sup>) = 16384</td><td class="has-text-align-center" data-align="center">32767</td></tr><tr><td class="has-text-align-center" data-align="center">Core 7 Thread 2</td><td class="has-text-align-center" data-align="center">CPU15</td><td class="has-text-align-center" data-align="center">(2<sup>15</sup>) = 32768</td><td class="has-text-align-center" data-align="center">65535</td></tr><tr><td class="has-text-align-center" data-align="center">Core 8 Thread 1</td><td class="has-text-align-center" data-align="center">CPU16</td><td class="has-text-align-center" data-align="center">(2<sup>16</sup>) = 65536</td><td class="has-text-align-center" data-align="center">131071</td></tr><tr><td class="has-text-align-center" data-align="center">Core 8 Thread 2</td><td class="has-text-align-center" data-align="center">CPU17</td><td class="has-text-align-center" data-align="center">(2<sup>17</sup>) = 131072</td><td class="has-text-align-center" data-align="center">262143</td></tr><tr><td class="has-text-align-center" data-align="center">Core 9 Thread 1</td><td class="has-text-align-center" data-align="center">CPU18</td><td class="has-text-align-center" data-align="center">(2<sup>18</sup>) = 262144</td><td class="has-text-align-center" data-align="center">524287</td></tr><tr><td class="has-text-align-center" data-align="center">Core 9 Thread 2</td><td class="has-text-align-center" data-align="center">CPU19</td><td class="has-text-align-center" data-align="center">(2<sup>19</sup>) = 524288</td><td class="has-text-align-center" data-align="center">1048575</td></tr><tr><td class="has-text-align-center" data-align="center">Core 10 Thread 1</td><td class="has-text-align-center" data-align="center">CPU20</td><td class="has-text-align-center" data-align="center">(2<sup>20</sup>) = 1048576</td><td class="has-text-align-center" data-align="center">2097151</td></tr><tr><td class="has-text-align-center" data-align="center">Core 10 Thread 2</td><td class="has-text-align-center" data-align="center">CPU21</td><td class="has-text-align-center" data-align="center">(2<sup>21</sup>) = 2097152</td><td class="has-text-align-center" data-align="center">4194303</td></tr><tr><td class="has-text-align-center" data-align="center">Core 11 Thread 1</td><td class="has-text-align-center" data-align="center">CPU22</td><td class="has-text-align-center" data-align="center">(2<sup>22</sup>) = 4194304</td><td class="has-text-align-center" data-align="center">8388607</td></tr><tr><td class="has-text-align-center" data-align="center">Core 11 Thread 2</td><td class="has-text-align-center" data-align="center">CPU23</td><td class="has-text-align-center" data-align="center">(2<sup>23</sup>) = 8388608</td><td class="has-text-align-center" data-align="center">16777215</td></tr><tr><td class="has-text-align-center" data-align="center">Core 12 Thread 1</td><td class="has-text-align-center" data-align="center">CPU24</td><td class="has-text-align-center" data-align="center">(2<sup>24</sup>) = 16777216</td><td class="has-text-align-center" data-align="center">33554431</td></tr><tr><td class="has-text-align-center" data-align="center">Core 12 Thread 2</td><td class="has-text-align-center" data-align="center">CPU25</td><td class="has-text-align-center" data-align="center">(2<sup>25</sup>) = 33554432</td><td class="has-text-align-center" data-align="center">67108863</td></tr><tr><td class="has-text-align-center" data-align="center">Core 13 Thread 1</td><td class="has-text-align-center" data-align="center">CPU26</td><td class="has-text-align-center" data-align="center">(2<sup>26</sup>) = 67108864</td><td class="has-text-align-center" data-align="center">134217727</td></tr><tr><td class="has-text-align-center" data-align="center">Core 13 Thread 2</td><td class="has-text-align-center" data-align="center">CPU27</td><td class="has-text-align-center" data-align="center">(2<sup>27</sup>) = 134217728</td><td class="has-text-align-center" data-align="center">268435455</td></tr><tr><td class="has-text-align-center" data-align="center">Core 14 Thread 1</td><td class="has-text-align-center" data-align="center">CPU28</td><td class="has-text-align-center" data-align="center">(2<sup>28</sup>) = 268435456</td><td class="has-text-align-center" data-align="center">536870911</td></tr><tr><td class="has-text-align-center" data-align="center">Core 14 Thread 2</td><td class="has-text-align-center" data-align="center">CPU29</td><td class="has-text-align-center" data-align="center">(2<sup>29</sup>) = 536870912</td><td class="has-text-align-center" data-align="center">1073741823</td></tr><tr><td class="has-text-align-center" data-align="center">Core 15 Thread 1</td><td class="has-text-align-center" data-align="center">CPU30</td><td class="has-text-align-center" data-align="center">(2<sup>30</sup>) = 1073741824</td><td class="has-text-align-center" data-align="center">2147483647</td></tr><tr><td class="has-text-align-center" data-align="center">Core 15 Thread 2</td><td class="has-text-align-center" data-align="center">CPU31</td><td class="has-text-align-center" data-align="center">(2<sup>31</sup>) = 2147483648</td><td class="has-text-align-center" data-align="center">4294967295</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">For example, if I want an AMD Ryzen 9 5950X to run the designated process on the potentially faster first 8 cores or 16 threads, the bit mask would be “<strong>FFFF</strong>” .</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">Scripting</h4>



<p class="wp-block-paragraph">You can automate the process using Batch or PowerShell. Here is a simple example in Batch:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#e1e4e8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>@echo off
cd "C:\Users\Admin\Desktop\MySoftware"
START /min /affinity FFFF cmd /C "MyProzess.exe -MyParameter1 -MyParameter2"</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark" style="background-color: #24292e" tabindex="0"><code><span class="line"><span style="color: #F97583">@echo</span><span style="color: #E1E4E8"> </span><span style="color: #F97583">off</span></span>
<span class="line"><span style="color: #F97583">cd</span><span style="color: #E1E4E8"> </span><span style="color: #9ECBFF">&quot;C:\Users\Admin\Desktop\MySoftware&quot;</span></span>
<span class="line"><span style="color: #F97583">START</span><span style="color: #E1E4E8"> /min /affinity FFFF </span><span style="color: #F97583">cmd</span><span style="color: #E1E4E8"> /C </span><span style="color: #9ECBFF">&quot;MyProzess.exe -MyParameter1 -MyParameter2&quot;</span></span></code></pre></div>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">In addition, you can also set the process priority right away:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#e1e4e8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>@echo off
cd "C:\Users\Admin\Desktop\MySoftware"
START /high /min /affinity FFFF cmd /C "MyProzess.exe -MyParameter1 -MyParameter2"</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark" style="background-color: #24292e" tabindex="0"><code><span class="line"><span style="color: #F97583">@echo</span><span style="color: #E1E4E8"> </span><span style="color: #F97583">off</span></span>
<span class="line"><span style="color: #F97583">cd</span><span style="color: #E1E4E8"> </span><span style="color: #9ECBFF">&quot;C:\Users\Admin\Desktop\MySoftware&quot;</span></span>
<span class="line"><span style="color: #F97583">START</span><span style="color: #E1E4E8"> /high /min /affinity FFFF </span><span style="color: #F97583">cmd</span><span style="color: #E1E4E8"> /C </span><span style="color: #9ECBFF">&quot;MyProzess.exe -MyParameter1 -MyParameter2&quot;</span></span></code></pre></div>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Possible values are:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#e1e4e8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>/low
/normal
/high
/realtime
/abovenormal
/belownormal</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki github-dark" style="background-color: #24292e" tabindex="0"><code><span class="line"><span style="color: #E1E4E8">/low</span></span>
<span class="line"><span style="color: #E1E4E8">/normal</span></span>
<span class="line"><span style="color: #E1E4E8">/high</span></span>
<span class="line"><span style="color: #E1E4E8">/realtime</span></span>
<span class="line"><span style="color: #E1E4E8">/abovenormal</span></span>
<span class="line"><span style="color: #E1E4E8">/belownormal</span></span></code></pre></div>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>
<p>Der Beitrag <a href="https://blog.florianehrle.de/en/2026/02/01/windows-set-process-affinity/" data-wpel-link="internal">Windows: Set process affinity</a> erschien zuerst auf <a href="https://blog.florianehrle.de/en" data-wpel-link="internal">flohs blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.florianehrle.de/en/2026/02/01/windows-set-process-affinity/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
