【问题标题】:Append text in front of a windows command line output在 Windows 命令行输出前附加文本
【发布时间】:2019-09-09 21:40:31
【问题描述】:

我有一个 Windows 批处理文件,我需要一些帮助来修改它。我用它来根据序列号为我们的新 PC 命名。我可以成功创建一个简单的批处理文件来运行命令并复制输出,但我想在输出的序列号前面添加一些文本,以便我可以轻松地使用我们的标准格式命名 PC。

我试图找到一种在命令前添加文本的方法,但它要么会破坏命令,要么不会一起显示。

@ECHO OFF
TITLE Serial Number grabber
COLOR 0a
@echo ON
WMIC BIOS GET SERIALNUMBER
@echo off
pause

我希望输出显示类似“ABC-Serialnumber”的内容,例如,CMD 行窗口中的输出将输出:ABC-1234XYZ

【问题讨论】:

    标签: windows command


    【解决方案1】:

    您可以将序列号重定向到文本文件中。从批处理脚本中调用 PowerShell 以删除除数字之外的所有内容。然后将其读入一个 var 以使用所需的前缀读取

    set prefix=ABC
    WMIC BIOS GET SERIALNUMBER>Serial.txt
    powershell -command "(Get-content Serial.txt) -replace 'VMware-| ','' | select-object -skip 1 | Set-content Serial.txt"
    set /p serial=<serial.txt
    set Computer_Asset=%prefix%-%serial%
    echo %Computer_Asset%
    

    PowerShell 行是

    • 读取文件(获取内容)
    • 用空替换VMWare-和所有空格
    • 跳过文件的第一行(select-object -skip 1)
    • 将新内容写入文件(set-content)

    将文件内容输入串行变量。

    现在您只需使用前缀和序列号设置资产名称 (Set asset_tag=%prefix%-%serial%)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      相关资源
      最近更新 更多