WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 12.11.2004, 11:12   #1
MagicMaxon
Senior Member
 
Registriert seit: 02.03.2001
Beiträge: 141


Standard mit .bat Text ersetzen

Hallo,
wuerde gerne folgendes mit einer batch Datei unter DOS machen:

In einer Datei XY soll in einer FOR Schleife jeweils x mal ein bestimmter Wert geaendert werden, also im Prinzip sowas:

for (i=1,i<=x,i++)
{setze wert in datei xy auf i;
run;}

Weiss da jemand bescheid?
MagicMaxon ist offline   Mit Zitat antworten
Alt 12.11.2004, 16:15   #2
flinx
Inventar
 
Registriert seit: 08.04.2001
Beiträge: 3.101


Standard

Bitte erklär etwas genauer, was du haben willst.
Wie ist die Datei aufgebaut und was willst du wo, womit ersetzen? Mit reinen Bordmitteln oder kannst du auch die Unixutils einsetzen?
flinx ist offline   Mit Zitat antworten
Alt 12.11.2004, 16:20   #3
MagicMaxon
Senior Member
 
Registriert seit: 02.03.2001
Beiträge: 141


Standard

ok, also ich habe eine ganz normale .txt Datei und moechte
da an einer bestimmten Stelle Werte ersetzen.
Beispiel:
in der Datei steht:
________________________________
parameter wert

x 5
y 10
________________________________

nun moechte ich zum beispiel fuer den parameter x eine for-schleife haben, die mir nacheinander anstelle der 5 zum beispiel die werte 1...10 schreibt.
hoffe, das war einigermassen verstaendlich.
MagicMaxon ist offline   Mit Zitat antworten
Alt 12.11.2004, 18:33   #4
flinx
Inventar
 
Registriert seit: 08.04.2001
Beiträge: 3.101


Standard

Zitat:
hoffe, das war einigermassen verstaendlich.
Nicht ganz.
Willst du:
zzz.txt enthält:
Code:
parameter wert

x 5
y 10
mit:
Code:
@echo off
setlocal
if exist zzz1.txt del zzz1.txt
set anf=1
set end=5

:begin
for /f "tokens=1,*" %%i in ('type zzz.txt') do (
if "%%i"=="x" echo %%i %anf% >>zzz1.txt
if not "%%i"=="x" echo %%i %%j>>zzz1.txt
)
set /a anf=%anf%+1
if not %anf%==%end% goto begin
enthält zzz1.txt:
Code:
parameter wert
x 1 
y 10
parameter wert
x 2 
y 10
parameter wert
x 3 
y 10
parameter wert
x 4 
y 10
flinx ist offline   Mit Zitat antworten
Alt 12.11.2004, 21:22   #5
MagicMaxon
Senior Member
 
Registriert seit: 02.03.2001
Beiträge: 141


Standard

Nee, nicht ganz ;-)
Ich versuche es nochmal.
Also, das Ganze hat den Hintergrund, dass ich ein paar Simulationen hintereinander laufen lassen möchte. Der Aufruf EINER Simulation
erfolgt mit:

sim parameter.txt

wobei sim das Simulationsprogramm ist.
Um die Simulationen nun hintereinander laufen zu lassen, muss ich jeweils in der Datei parameter.txt einen Parameter und den Pfad, in den die Ergebnisse geschrieben werden ändern. parameter.txt sieht also ungefähr so aus:
__________________________
#parameter.txt

result_dir ./result
nb_ue 10
__________________________

Ich möchte also mit der batch Datei result und die 10 verändern und danach die Simulation starten, dabei ist der Wert von result egal.
Angenommen, ich möchte nb_ue von 1 bis 4 laufen lassen, sollten die Veränderungen der parameter.txt so aussehen:

nach 1. Iteration
__________________________
#parameter.txt

result_dir ./1
nb_ue 1
__________________________

nach 2. Iteration
__________________________
#parameter.txt

result_dir ./2
nb_ue 2
__________________________

nach 3. Iteration
__________________________
#parameter.txt

result_dir ./3
nb_ue 3
__________________________

nach 4. Iteration
__________________________
#parameter.txt

result_dir ./4
nb_ue 4
__________________________

Ich hoffe, dass es jetzt etwas klarer geworden ist???!!!???
MagicMaxon ist offline   Mit Zitat antworten
Alt 12.11.2004, 23:25   #6
flinx
Inventar
 
Registriert seit: 08.04.2001
Beiträge: 3.101


Standard

Versuchs mit:
Code:
@echo off
setlocal
set anf=1
set end=5

:begin
if exist zzz1.txt del zzz1.txt
if exist parameter1.txt del parameter1.txt
for /f "tokens=1,*" %%i in ('type parameter.txt') do (
if "%%i"=="result_dir" (
echo %%i ./%anf% >>parameter1.txt
echo >zzz1.txt
)
if "%%i"=="nb_ue" (
echo %%i %anf% >>parameter1.txt
echo >zzz1.txt
)
if not exist zzz1.txt echo %%i %%j>>parameter1.txt
)
Rem sim paramter1.txt
set /a anf=%anf%+1
if not %anf%==%end% goto begin
if exist zzz1.txt del zzz1.txt
if exist parameter1.txt del parameter1.txt
endlocal
Rem vor sim wegnehmen und ev. durch Pfade ergänzen.

Ansonsten ersetze alle '>>parameter1.txt' durch '>>parameter%anf%.txt' und ein rem vor allen 'if exist parameter1.txt del parameter1.txt'
--> parameter1.txt - parameter4.txt
flinx ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:56 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag