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...
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
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...
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 298210
Url: https://administrator.de/contentid/298210
Ausgedruckt am: 05.11.2024 um 20:11 Uhr
1 Kommentar
Eine CSV (oder Text Datei) kannst du so einlesen:
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.
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.