manu90
Goto Top

Batch hilfe für beginner

hi @ all
ich wollte gerne einige Progis mit meinem Batch ausrollen... was aber ziemlich unübersichtlich wird mit meinen Versuchen... weil ellen lang...
gibts eine Möglichkeit das ich Variablen in einer Datei und den "running" batch in einer 2 Datei speichern kann...

und dann evt. auch das ganze Setup1 als for Schleife so oft läuft wie die Variablen Datei Inhalte hat? Damit sich der Code nicht x-mal wiederholen muss?
ich check das nicht... face-sad

thanks @ all

@echo off
DATE /T >> "%homedrive%\Test\Setup.log"
TIME /T >> "%homedrive%\Test\Setup.log"
:: Definition aller Variablen
set bp=Test >> "%homedrive%\Test\Setup.log"
set m1=aktiv wird beendet
set m2=wurde beendet Setup wird gestartet
set m3=laeuft nicht Setup wird gestartet
set m4=nicht installiert Setup wird uebersprungen
:: Setup 1
:: Variablen
set Pfad1=Programmname1xxx
set Programm1=Programmname1xxx
set Task1=Task1xxx
:: Beginn
echo "%Programm1%" Setup
:: Abfrage Programmordner vorhanden
:INSTALLIERT1
IF NOT EXIST "%programfiles%\%Pfad1%" GOTO NICHTINSTALLIERT1
:: Task beenden
tasklist |find /i "%Programm1%" >nul
if %errorlevel% == 0 (
echo %Programm1% %m1%
TASKKILL /F /IM %Task1%.exe
echo %Programm1% %m2%
start "%Programm1%" "%homedrive%\%bp%\%Programm1%.exe"
PING 1.1.1.1 -n 1 -w 10000 >nul
) else (
echo %Programm1% %m3%
start "%Programm1%" "%homedrive%\%bp%\%Programm1%.exe"
PING 1.1.1.1 -n 1 -w 10000 >nul
)
GOTO SETUP2
:: Programm nicht installiert
:NICHTINSTALLIERT1
echo "%Programm1%" %m4%
:: Setup 1 Ende

pause

Content-ID: 298210

Url: https://administrator.de/contentid/298210

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

agowa338
agowa338 04.03.2016 aktualisiert um 23:13:57 Uhr
Goto Top
Eine CSV (oder Text Datei) kannst du so einlesen:
For /F "delims=; skip=1 tokens=1,2,3" %%i in (%~dp0Datei.csv) do <<command>>  

/F  File
delims=;  Trennzeichen=;
skip=1  Überspringt die 1. Zeile in der Datei (also die Spaltenüberschrift)
tokens=1,2,3  Die gewünschten Spalten 
%%i  Die erste Variable für die Ergebnisse (also hier: %%i = Spalte 1; %%j = Spalte 2; %%k = Spalte 3)
<<command>>  Das Kommando, für das du die Variablen benutzen kannst

Weitere Informationen findest du hier:
Workshop Teil 1: Workshop Batch for Runaways - Part I - Beispiel FindLongPath.Bat Bedenklich lange Pfade finden
Workshop Teil 2: Workshop Batch for Runaways - Part II - Ein bisschen Handwerkszeug
Workshop Teil 3: Workshop Batch for Runaways - Part III - Datums- und Zeitvariablen im Batch
For Schleife: Tutorial zur FOR-Schleife
Batch Grundlagen: Windows Batch Grundlagen
Subroutinen: HowTo - Wie man Subroutinen in Batchfiles erstellt

P.S. Ich kann dieses "PING 1.1.1.1 -n 1 -w 10000 >nul" nicht mehr sehen, bitte verwende "timeout <<Sekunden>>"" stattdessen und falls es nicht abgebrochen werden können soll "timeout /nobreak <<Sekunden>>". Aber so wie du es verwendest suchst du eher ein "start /wait <<command>>" dadurch pausiert die Ausführung bis <<command>> beendet wurde.