2

我主要只是希望指向正确的方向,这样我就可以自己拼凑起来。我有相当数量的批处理文件脚本编写经验。我是一个 PS 菜鸟,但我认为 PS 对于下面的项目会更好。

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

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

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

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

install.exe /client_ID=0006

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

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

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

4

1 回答 1

5

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

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

Install.exe /client_id=$value
于 2017-03-27T21:06:58.663 回答