2017-03-27 1 views
2

Ich versuche meistens, in die richtige Richtung zu zeigen, damit ich es selbst zusammensetzen kann. Ich habe eine anständige Menge an Batch-Datei-Skripterfahrung. Ich bin ein PS-Noob, aber ich denke PS wäre besser für das Projekt unten.Mit Powershell benutzerdefinierte Installationszeichenfolgen aus der CSV-Eingabe erstellen

Wir haben Software, die erfordert, dass die Client-ID Teil der Installationszeichenfolge ist (zusammen mit Schaltern, usr/pass, anderen Schaltern, Protokollpfaden usw.).

Ich habe eine Batch-Datei (Hunderte tatsächlich) erstellt, die ich mit PSEXEC auf Remote-Maschinen ausführen, die funktioniert, aber es ist stämmig zu pflegen. Die einzige Änderung in jedem ist die Client-ID.

Was ich versuche zu tun ist eine CSV mit 2 Spalten als Eingabe (so muss ich nur die CSV-Datei pflegen): Maschinenname (wie von %hostname% dargestellt) & Client-ID. Ich möchte ein Skript erstellen, das %hostname% mit einer entsprechenden Zeile in Spalte 1 übereinstimmt, die Daten in Spalte 2 der gleichen Zeile lesen und dann als Variable in der Installationszeichenfolge aufrufen können.

E.G. Wenn mein CSV bobs-pc in Spalte 1, Zeile 6, dann die Daten aus Spalte einfügen 2, Zeile 6 (seien sie 0006 nennt) in der Zeichenkette folgenden installieren:

install.exe /client_ID=0006 

kein Looping I don‘ Ich möchte, dass es auf allen Maschinen gleichzeitig installiert wird, aufgrund der verschiedenen Zeitzonen, in denen wir arbeiten.

So etwas wäre für viele Projekte wirklich nützlich, also bin ich mehr daran interessiert zu lernen, als wenn jemand es für mich schreiben würde .

Ich verstehe, ich sollte Import-Csv verwenden. Ich habe eine Probe csv erstellt und kann bestimmte Felder zum Ausdrucken in PS erhalten. Was ich brauche, ist, dass ein Skript diese Felder als Variablen in die Installationszeichenfolge einfügen kann.

Antwort

5

Klingt wie Sie etwas entlang der Linien von dieser wollen, (übernimmt Ihre CSV eine Kopfzeile von col1 und col2 hat):

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

Install.exe /client_id=$value 
+0

@BWood Wenn dies Ihnen geholfen als angenommen markieren Sie bitte die Antwort. –

Verwandte Themen