Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst BATCH-Script

Mitglied: hipfzwirgel

hipfzwirgel (Level 1) - Jetzt verbinden

25.03.2019 um 13:37 Uhr, 998 Aufrufe, 9 Kommentare

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?
Mitglied: laster
25.03.2019 um 15:09 Uhr
hallo,

Du könntest alle Daten in eine Zeile schreiben und die Felder mit ';' trennen.
01.
@echo off
02.
for /F "usebackq tokens=1-5 Delims=;" %%i IN (x.txt) do call :PROC1 %%i %%j %%k %%l %%m
03.
goto ENDE
04.

05.
:PROC1
06.
echo %1
07.
echo %2
08.
echo %3
09.
echo %4
10.
echo %5
11.

12.
goto :EOF
13.
:ENDE
vG
LS
Bitte warten ..
Mitglied: laster
25.03.2019 um 15:10 Uhr
ok, hab gerade gelesen "zeilenweise" - zwingend ??
Bitte warten ..
Mitglied: hipfzwirgel
25.03.2019, aktualisiert um 15:23 Uhr
Hallo laster

zeilenweise ist nicht unbedingt zwingend. in erster Linie geht es mir darum zu sehen ob und wie man dynamische Variablen zur Laufzeit der For /f-Schleife erzeugen kann.

Gibt es denn i-eine Zähl-Variable oder so etwas, was man wie bei einer normalen For-Schleife(for i = 1...) nutzen kann?
Bitte warten ..
Mitglied: 138810
LÖSUNG 25.03.2019, aktualisiert um 15:50 Uhr
Hier ein paar Varianten:

Variante 1


Textdatei:
01.
var1=Rechnername
02.
var2=Setup.exe
03.
var3Pfad zur Inst-datei
04.
var4=String mit unattended-Schaltern z.B. -s -b -overwrite
05.
var5=Name Zielordner
Batch
01.
@echo off
02.
for /f "usebackq delims=" %%a in ("C:\datei.txt") do set "%%a"
03.
echo %var1%
04.
echo %var2%
05.
echo %var3%
06.
echo %var4%
07.
echo %var5%

Variante 2

Aber warum eine extra Textdatei, übergebe die Parameter doch einfach auf der Kommandozeile
batch.cmd "Param1" "Param2" "Param3"
und in der Batch dann
01.
echo %1
02.
echo %2
03.
echo %3
usw.

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
01.
@echo off
02.
for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" "c:\test.txt"') do set "var%%a=%%b"
03.
echo %var1%
04.
echo %var2%
05.
echo %var3%
06.
:: usw
Bitte warten ..
Mitglied: laster
25.03.2019 um 15:29 Uhr
for /L %%i IN (1, 1, 10) do echo %%i
1
2
3
4
5
6
7
8
9
10
Bitte warten ..
Mitglied: hipfzwirgel
25.03.2019 um 15:48 Uhr
Hallo freesolo,

zunächst danke an alle für die Denkanstöße.

"Warum in eine Textdatei..."

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. Das Script kommt auf unterschiedlichen Testrechner zum Einsatz und soll dort immer den gleichen Treiber installieren. Es handelt sich um einen Installationstest ob die Inst fehlerfrei auf unseren Testsystemen durch läuft, bevor er für SCCM paketiert werden soll. Zuerst hatte ich mit set /p die parameter abgefragt aber das ging mir auf den Geist, jedes mal die gleichen Angaben reinzuhacken

@ laster:

das wäre eine "normale" For schleife mit Startparameter, Laufweite, Ende, etc. Damit kann ich aber keine Liste einlesen oder?
Bitte warten ..
Mitglied: 138810
25.03.2019, aktualisiert um 15:52 Uhr
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 .

Naja Varianten hast du ja jetzt von uns genügend oben.

Wenns das dann war http://www.administrator.de/faq/32 nicht vergessen.
Bitte warten ..
Mitglied: laster
25.03.2019 um 16:09 Uhr
Liste einlesen: siehe Variante 1 von freesolo oder ganz oben meine 1. Antwort.
vG
LS
Bitte warten ..
Mitglied: hipfzwirgel
25.03.2019 um 16:19 Uhr
Hallo freesolo,

ich habe die Version 1 gleich mal umgesetzt. Funktioniert super! ThumpUp. Vielen lieben Dank. Damit ist das Thema jedenfalls gelöst.

auch vielen lieben Dank an dich laster.


Möge euch die Hilfestellung mit allzeit schönem Wetter vergolten werden!!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Drucker Script
gelöst Frage von Angelo131095Batch & Shell3 Kommentare

Guten Tag, mein Name ist Angelo, ich Helfe unserem Administrator in der Schule und habe ein Script für die ...

Batch & Shell
Powershell oder Batch Script
gelöst Frage von HistorikBatch & Shell13 Kommentare

Hallo zusammen, ich bin neu hier und benötige jemand der mir ein Script erstellt ,dass mir die Daten ausliest: ...

Batch & Shell
Batch-Script für Lizenzen
Frage von stoepsu77Batch & Shell3 Kommentare

Hallo an Alle, ich hab da ne Frage an die Spezis unter Euch. Denn im Moment hab ich grad ...

Batch & Shell
PowerShell-Script per Batch aufrufen
gelöst Frage von halingtonBatch & Shell8 Kommentare

Hallo zusammen, ich versuche ein PowerShell-Script (pstest.ps1) per Batch aufzurufen. Im ersten Schritt versuche ich den String, der später ...

Neue Wissensbeiträge
Microsoft Office

Supportlebenszyklus für Office 2010 verlängert

Information von Dani vor 1 TagMicrosoft Office4 Kommentare

Moin, Like most Microsoft products, Microsoft Office 2010 has a support lifecycle during which we provide new features, software ...

Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 2 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 2 TagenExchange Server3 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 2 TagenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Heiß diskutierte Inhalte
VB for Applications
Euro-Zeichen in jedem neu erstellten Brief mit Word automatisch entfernen
gelöst Frage von imebroVB for Applications23 Kommentare

Hallo, ich habe ein Problem mit Word, bzw. mit dem €-Zeichen, welches bei Erstellung eines Word-Briefes automatisch eingesetzt wird. ...

Batch & Shell
Regedit eintrad ändern als Admin
Frage von cyberworm83Batch & Shell19 Kommentare

Hallo zusammen, ich bin derzeit als Rollout Techniker unterwegs und muss täglich bei zig Rechnern einen Registry Einträg ändern ...

Visual Studio
Prüfen, ob Programm schon disposed wurde
Frage von MarcoBornVisual Studio17 Kommentare

Hallo Forum, ich habe in VB.NET ein Programm geschrieben, welches Word startet und dort Daten ausliest. Obwohl ich die ...

Router & Routing
Mikrotik Config PTP
Frage von Marcel94Router & Routing16 Kommentare

Hallo, kennt sich jemand mit Mikrotik aus? Möchte gerne eine PTP Verbindung mit zwei SYTsq 5ac Antennen erstellen. So ...