【问题标题】:Using Powershell to create custom install strings from CSV input使用 Powershell 从 CSV 输入创建自定义安装字符串
【发布时间】:2017-08-20 17:53:55
【问题描述】:

我主要只是希望被指出正确的方向,以便我自己将其拼凑起来。我有相当数量的批处理文件脚本编写经验。我是个 PS 菜鸟,但我认为 PS 更适合下面的项目。

我们的软件需要客户端 ID 作为安装字符串的一部分(以及开关、usr/pass、其他开关、日志记录路径等)。

我创建了一个批处理文件(实际上是数百个),我在远程机器上使用PSEXEC 执行该文件,它确实有效,但维护起来很笨重。每个中唯一的变化是客户端 ID。

我想要做的是有一个包含 2 列的 CSV 作为输入(所以我只需要维护 CSV):机器名称(由 %hostname% 提供)和客户端 ID。我想创建一个脚本,将%hostname% 匹配到第 1 列中的相应行,读取同一行第 2 列中的数据,然后能够将其作为安装字符串中的变量调用。

例如 如果我的 CSV 在第 1 列第 6 行中有 bobs-pc,则在以下安装字符串中插入第 2 列第 6 行的数据(我们称之为 0006):

install.exe /client_ID=0006

没有循环 由于我们所在的多个时区,我不希望它同时安装在所有机器上。

这样的东西对我的许多项目非常有用,所以我对学习比让任何人为我编写它更感兴趣。

我知道我应该使用Import-Csv。我创建了一个示例 csv,并且可以在 PS 中打印出某些字段。我需要一个脚本能够将这些字段作为变量插入到安装字符串中。

【问题讨论】:

    标签: powershell import-csv


    【解决方案1】:

    听起来你想要一些类似的东西,(假设你的 CSV 有一个 col1 和 col2 的标题行):

    $hostname = 'server1'
    $value = Import-CSV myfile.csv | where { $_.col1 -eq $hostname } | select -expandproperty col2
    
    Install.exe /client_id=$value
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-20
      • 2017-09-08
      • 1970-01-01
      • 2018-05-11
      • 2017-05-18
      • 2014-12-03
      • 1970-01-01
      • 2018-09-07
      相关资源
      最近更新 更多