小编Dav*_*ago的帖子

从没有超线程的计算机获取内核总数

这是困难的一个。

我需要使用命令从我的服务器输出确切数量的内核。

我的测试:

  • X在具有 4 个处理器(插槽)和 2 个内核的 Windows 服务器上,每个内核都没有 HT。
  • Y在具有 2 个处理器(插槽)和 6 个内核的 Windows Server 上,每个内核都带有 HT。

GetSystemInfo只为我提供安装的处理器数量:X 为 4,Y 为 2。

|                | X: 8 cores  | Y: 12 cores |
|                | 4x2 (no HT) | 2x6 (HT)    |
|----------------|-------------|-------------|
| Desired output | 8           | 12          |
| GetSystemInfo  | 4           | 2           | 
Run Code Online (Sandbox Code Playgroud)

%NUMBER_OF_PROCESSORS%是一个很好的,但它考虑到了HT。它告诉我 X 为 8,Y 为 24(因为它有 HT,我需要它显示 12)。

|                        | X: 8 cores  | …
Run Code Online (Sandbox Code Playgroud)

windows processor hyperthreading cpu-cores

7
推荐指数
4
解决办法
3万
查看次数

获取WMIC命令的结果并将其存储在变量中

我看到一些批处理脚本以这种方式工作,包括所有的stackoverflow.

我的问题很简单:为什么MEM部分不起作用?

@echo OFF

SET CPU="$CPU"

echo CPU: %NUMBER_OF_PROCESSORS%

FOR /F "delims=" %%i IN ('wmic computersystem get TotalPhysicalMemory') DO set MEM=%%i

echo MEM: %MEM%
Run Code Online (Sandbox Code Playgroud)

scripting batch-file wmic

1
推荐指数
1
解决办法
959
查看次数

过滤文件内容以从PowerShell中的另一个文件中排除所有具有匹配字符串的行

我需要过滤变量的内容,以将所有具有匹配字符串的行从SubnetExceptions.txt文件中排除,作为过滤器,就像一条grep -v命令一样。

$Value为了获得所需的格式,该变量经过了很多处理。

该代码的工作部分如下:

$Value=netsh dhcp server show mibinfo | findstr "Subnet Addresses"
$Value=$Value -replace "Subnet","% `n Subnet"
$Value=$Value -replace "No. of Addresses in use","AddressesInUse"
$Value=$Value -replace "No. of free Addresses","AddressesFree"
$Value=$Value -replace '^.|.$', ' '
$Value=$Value -replace '    ', ""
$Value=$Value -replace '  ', " "
$Value= -join $Value 
$Value=$Value -replace '\n', ''
$Value=$Value -replace "% ", "`n"
$Value=$Value -replace ' = ', '='
Run Code Online (Sandbox Code Playgroud)

ps1的前11行$Value从以下命令处理该命令的输出():

    子网= 10.1.8.0。
        正在使用的地址数= 11。
        免费地址数= 18。
    子网= …

powershell scripting replace windows-scripting

0
推荐指数
1
解决办法
1002
查看次数