batch-file - 将变量设置为命令的值

标签 batch-file cmd

我需要将 WMIC COMPUTERSYSTEM GET MODEL/Value 的值设置为变量。当我运行此命令时,我得到以下结果。为什么我会收到额外的空行?

U:\>for /f "delims=" %i in ('WMIC COMPUTERSYSTEM GET MODEL /Value') do set output=%i
 :\>set output=
 :\>set output=
 :\>set output=Model=HP ProDesk 600 G1 SFF
 :\>set output=
 :\>set output=
 :\>set output=

最佳答案

这是 WMIC 输出的问题,其中包含回车字符。
因此,空行不会被删除,因为它们并不是完全空的。

回车符也会导致 :> 而不是 U:> 的奇怪输出,因为回车符首先将光标移动到 POS1 然后一个空格删除 U

使用额外的 FOR/F 可以去掉回车符

for /f "delims=" %i in ('WMIC COMPUTERSYSTEM GET MODEL /Value') do @(
    for /F "delims=" %X in ("%i") do set output=%X
)

顺便说一句。通常您希望在批处理文件中使用这样的表达式,而不是在命令行中。
然后你必须将其转换为

@echo off
for /f "delims=" %%i in ('WMIC COMPUTERSYSTEM GET MODEL /Value') do (
    for /F "delims=" %%X in ("%%i") do set output=%%X
)

关于batch-file - 将变量设置为命令的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38742917/

相关文章:

windows - 使用 .bat 文件检查文件夹是否存在

mysql - 使用生成的键批量插入处理唯一的重复条目

windows - 处理软件正在使用的文件时如何避免 I/O 错误 32

node.js - 是否可以在环境变量中没有 Python 路径的情况下运行 npm install

batch-file - 使用批处理文件删除远程计算机上存在的文件夹

java - Jar 输出中的 UTF-8 编码损坏

powershell - 来自 Windows 的 SSH 隧道作为后台进程?

.net - SVN 控制台 .NET 错误

java - 如何从java启动cmd.exe?

batch-file - 防止批处理命令的输出