【问题标题】:Powershell how to take string from file and put into a variablePowershell如何从文件中获取字符串并放入变量中
【发布时间】:2013-07-19 17:48:48
【问题描述】:

我正在编写一个 Powershell 脚本来“构建”Windows 7 PC:添加用户、打印机、应用程序、更改设置等。我正在使用 PNPU​​til 添加一些打印机驱动程序,但问题是我不知道驱动程序将被赋予什么“已发布名称”。

如果我将 PNPU​​til 命令的输出放入 .txt 文件中,有没有办法让我获取 __.inf 已发布名称并放入将它放入一个变量中,以便我可以使用该名称使用 $printerclass.CreateInstance() 添加打印机?

【问题讨论】:

    标签: string powershell select-string


    【解决方案1】:

    如果 PNPU​​til 只输出您感兴趣的名称,则不必使用文件。也就是说,您可以将其输出分配给如下变量:

    $result = pnputil.exe
    

    顺便说一句,如果你想使用文件,从你使用 Get-Content 的文件中读取内容:

    pnputil.exe > result.txt
    $result = Get-Content result.txt
    $line = $result | Foreach {if ($_ -match 'assigned an (\w+\.inf)') {$matches[1]}}
    

    【讨论】:

    • 谢谢你,Keith - 越来越近了。这是 PNP 添加命令输出的内容 -“Microsoft PnP 实用程序处理 inf:AW3N_64PPD.INF 驱动程序包已成功添加。发布名称:oem231.inf 尝试总数:1 成功导入的数量:1”它将始终分配一个“oem000.inf ",其中 "000" 是一个数字。所以我需要得到那个“oem___.inf”并将其放入一个变量中。这就是为什么我认为我可以将输出通过管道传输到 .txt 文件中并查找“oem*.inf”。
    • 抱歉 - cmets 忽略了文件的外观 - 里面有几个空行。
    • 好的 - 我找到了自己的解决方案:添加 .inf 文件后,驱动程序名称将存储在 Microsoft 更新文件中。我只需要从每个 .inf 文件中知道我需要的驱动程序的具体名称即可添加打印机。 .......... 但是,我仍然很想知道如何使用 Powershell 从文件中的行中获取字符串。
    【解决方案2】:

    好的 - 我找到了自己的解决方案:添加 .inf 文件后,该 .inf 中的所有驱动程序名称都存储在 Microsoft 更新文件中。我只需要从每个 .inf 文件中知道我需要的驱动程序的具体名称即可添加打印机。

    但是,我仍然很想知道如何使用 Powershell 从文件中的行中获取字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 2019-08-14
      相关资源
      最近更新 更多