目前,我正在尝试将内存的速度值转换为类似的变量
for /f "tokens=2 delims==" %%f in ('wmic memorychip get speed /value ^| find "="') do (set msp=%%f)
echo %msp%
但是它永远不会将值传递到变量中。如果我这样做
for /f "tokens=2 delims==" %%f in ('wmic memorychip get speed /value ^| find "="') do (echo %%f)
它将回显正确的值。为什么这不将值存储到变量中?
根据我最近的评论,以下内容旨在返回系统中最低的记忆棒速度。
@Set "MSp=9999"&For /F EOL^=S %%G In (
'""%__AppDir__%wbem\wmic.exe" MemoryChip Get Speed 2>NUL"')Do @(
SetLocal EnableDelayedExpansion
If 1%%G Lss 1!MSp! (EndLocal&Set /A MSp=%%G 2>NUL)Else EndLocal)
@Set MSp&Pause
最后一行是出于演示目的。我将9999
用作初始值,因为几年后我们不太可能拥有具有这些速度的记忆棒,(目前,我认为最快的是5000
,没有人可以证明其成本!]] >
尝试一下:
您希望在for循环中更改后,在for循环之外访问msp的值。在这种情况下,您可能需要将变量扩展为它们的运行时值,而不是解析时值。试试这个: