BATCH-Script
Hallo Batch-Profis,
ich habe ein Batch-Script geschrieben mit welchem ich einen Treiber unattended installieren kann. Dazu benötige ich 5 Angaben wie Inst-Datei, Pfad der Inst datei,
Rechnername, etc. auf dem der Treiber installiert werden soll. Wenn ich diese 5 Angaben per SET /p Var... fest vorgebe funktioniert das alles perfekt.
Ich möchte jetzt aber die 5 Angaben in eine Text-Datei auslagern, damit ich die Batch-Datei universell für unterschiedliche Treiber und für die immer gleichen Testrechner benützen kann.
Die Text-Datei mit For/ F auslesen ist kein Problem. Aber ich finde keinen Weg die 5 Angaben der Textdatei(Zeilenweise Auflistung!) in 5 Variablen(dynamisch erzeugt) zu schreiben,
damit ich aus den 5 Variablen die notwendigen Befehle für Xcopy und psexec erstellen kann
Beispieldatensatz:
Rechnername
Setup.exe
Pfad zur Inst-datei
String mit unattended-Schaltern z.B. -s -b -overwrite
Name Zielordner
Kann mir jemand erklären wie ich dynamisch erzeugte Variablen erstellen kann innerhalb einer For /F-Scheife?
ich habe ein Batch-Script geschrieben mit welchem ich einen Treiber unattended installieren kann. Dazu benötige ich 5 Angaben wie Inst-Datei, Pfad der Inst datei,
Rechnername, etc. auf dem der Treiber installiert werden soll. Wenn ich diese 5 Angaben per SET /p Var... fest vorgebe funktioniert das alles perfekt.
Ich möchte jetzt aber die 5 Angaben in eine Text-Datei auslagern, damit ich die Batch-Datei universell für unterschiedliche Treiber und für die immer gleichen Testrechner benützen kann.
Die Text-Datei mit For/ F auslesen ist kein Problem. Aber ich finde keinen Weg die 5 Angaben der Textdatei(Zeilenweise Auflistung!) in 5 Variablen(dynamisch erzeugt) zu schreiben,
damit ich aus den 5 Variablen die notwendigen Befehle für Xcopy und psexec erstellen kann
Beispieldatensatz:
Rechnername
Setup.exe
Pfad zur Inst-datei
String mit unattended-Schaltern z.B. -s -b -overwrite
Name Zielordner
Kann mir jemand erklären wie ich dynamisch erzeugte Variablen erstellen kann innerhalb einer For /F-Scheife?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 432651
Url: https://administrator.de/contentid/432651
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
9 Kommentare
Neuester Kommentar
Hier ein paar Varianten:
Textdatei:
Batch
und in der Batch dann
usw.
Die Textdatei bleibt wie deine Ursprüngliche Datei und dann nutzt du folgende Batch
Variante 1
Textdatei:
var1=Rechnername
var2=Setup.exe
var3Pfad zur Inst-datei
var4=String mit unattended-Schaltern z.B. -s -b -overwrite
var5=Name Zielordner
@echo off
for /f "usebackq delims=" %%a in ("C:\datei.txt") do set "%%a"
echo %var1%
echo %var2%
echo %var3%
echo %var4%
echo %var5%
Variante 2
Aber warum eine extra Textdatei, übergebe die Parameter doch einfach auf der Kommandozeilebatch.cmd "Param1" "Param2" "Param3"
echo %1
echo %2
echo %3
Variante 3
Noch eine weitere Variante bei der Variablen mit aufsteigender Zahl und einem festen Teil generiert werden:Die Textdatei bleibt wie deine Ursprüngliche Datei und dann nutzt du folgende Batch
@echo off
for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" "c:\test.txt"') do set "var%%a=%%b"
echo %var1%
echo %var2%
echo %var3%
:: usw
damit ich die Installations-Parameter nur einmal zentral eingeben muss und das Script beim mehrfachen ausführen
sich die Klamotten einliest und den Treiber installiert.
Hätte man ja dann einfach im Parameteraufruf mitgeben können, spart man sich eine Ebene .sich die Klamotten einliest und den Treiber installiert.
Naja Varianten hast du ja jetzt von uns genügend oben.
Wenns das dann war Wie kann ich einen Beitrag als gelöst markieren? nicht vergessen.