在 Windows 中运行批处理文件时显示 %variables% 为空白/丢失 [重复]
Posted
技术标签:
【中文标题】在 Windows 中运行批处理文件时显示 %variables% 为空白/丢失 [重复]【英文标题】:Displaying %variables% is blank/missing when running a batch file in Windows [duplicate] 【发布时间】:2021-07-15 02:39:52 【问题描述】:好的,在我的 BAT(批处理)文件中,我试图检测 Windows 机器的物理内核数量,然后将其显示给用户。我正在使用我已确认在命令提示符中正常工作的“wmic”,以重新调整正确的信息。但是,当我尝试显示我存储的值时,它只会显示一个空格。
例如,当我运行它时,最后一行只显示“你有物理核心”,并且在“拥有”和“物理”这两个词之间只有一个空格,即使那是 %cpuvar2% 的值应该是显示。我无法弄清楚为什么这没有显示。我也尝试过使用@ECHO ON,但没有运气。
:labelCPU
@ECHO OFF
REM Intro message to let the user know what is happening
ECHO Detecting CPU cores...
REM Command to get the number of physical cores and store as a string var
wmic computersystem get numberoflogicalprocessors> cpuvar
REM Command to remove the first line of junk text from the returned string and save as a new var
MORE +1 cpuvar> cpuvar2
REM Output the number of physical cores to the user
ECHO You have %cpuvar2% physical cores!
系统:Windows 10 Pro,x64
【问题讨论】:
使用set
设置变量。 >
用于将输出发送到文本文件。
您在 Internet 上的什么地方看到了使用重定向将命令的输出存储到变量中的示例?您在第一个 WMIC 命令中使用重定向到文件,然后使用 MORE 命令显示该文件。您是否认为上次重定向后功能发生了变化?
【参考方案1】:
这里有一个简单的例子供你学习。
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Echo Detecting CPU cores...
Set "NumCores=0"
For /F EOL^=N %%G In ('%SystemRoot%\System32\wbem\WMIC.exe
ComputerSystem Get NumberOfLogicalProcessors 2^>NUL'
) Do For /F "Tokens=*" %%H In ("%%G") Do Set "NumCores=%%H"
Echo You have %NumCores% physical cores!
Pause
【讨论】:
以上是关于在 Windows 中运行批处理文件时显示 %variables% 为空白/丢失 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我开机时显示找不到c:\windows\system32\mcdsrv16_080119.dll,
电脑启动时显示WINDOWS启动配置数据(BCD)存储文件包含一些无效信息,
如果Windows下Quick软件运行时显示无权限打开exe
我可以在过滤批处理文件(cmd)中的某些格式时显示目录中的文件吗?