Ordner mit geänderter Textdatei erstellen mittels Batch erstellen

TheIncreHulk

Cadet 1st Year
Registriert
Juli 2009
Beiträge
9
Hi,

ich bin relativ neu im Programmieren unterwegs und bin daher noch so gar nicht versiert :)
Hab daher erstmal an eine einfachere Batch-Programmierung gedacht.

Problem:
Ich will mittels der Batch-Datei 100 Ordner erststellen. in diese 100 Ordner sollen jeweils 3 Dateienk opiert werden. 2 davon sind in allen Ordnern identisch.
Die 3. Datei ist eine .txt-Datei die tabellarisch aufgebaut ist und immer an einer bestimmten stelle verändert werden soll. (z.B. soll in der 4. Zeile bei dem 55. zeichen ein wert um 0.01 erhöht werden).
Anschließend soll diese Datei in eine .k-Datei umbenannt werden.
Wäre sowas überhaupt mittels Batch möglich?

Würd mich über Hilfestellungen freuen :)
Gruss
 
Um das erstmal klar zu stellen: Batch ist keine Programmiersprache - sondern eine Scriptsprache.

Ordner erstellen kannst du mir mkdir.
Text in eine Datei schreiben kannst du mit: echo TEXT > C:\file.txt.

Wie man eine bestimmte Linie in der Datei weiß ich nun nicht, sollte aber mit einer for-Schleife realisierbar sein.
 
Hab auch eben über VB nachgedacht. aber dann muss man ja die txt-Datei erst in Excel importieren, wert in der zelle ändern, und wieder als txt rausschreiben, oder?
 
Nee, das geht bei XP über den Scripting Host und bei höheren Version ist das eingebaut. Da kannst Du irgendeinen Editor nehmen. Nur mußt Du das Script authorisieren.

Eine weitere, bessere unterstützte Alternative ist die Powershell, ab Windows 7 im Menü zu finden und ganz gut dokumentiert.

Wenn Du aber wirklich programmieren willst, rate ich zu C#. Dafür gibt es die Microsoft Visual Studio Express kostenlos.
 
100 Ordner erstellen:

FOR /L %i IN (1,1,100) DO @md Ordner%i

Ordner werden im aktiven Verzeichnis erstellt. Kannst auch vollqualifiziert angeben:

FOR /L %i IN (1,1,100) DO @md C:\Ordner%i


2 statische Dateien kopieren:

FOR /L %i IN (1,1,100) DO @copy Datei1 C:\Ordner%i
FOR /L %i IN (1,1,100) DO @copy Datei2 C:\Ordner%i


TheIncreHulk schrieb:
Die 3. Datei ist eine .txt-Datei die tabellarisch aufgebaut ist und immer an einer bestimmten stelle verändert werden soll. (z.B. soll in der 4. Zeile bei dem 55. zeichen ein wert um 0.01 erhöht werden)

Poste mal ein Beispiel


TheIncreHulk schrieb:
Anschließend soll diese Datei in eine .k-Datei umbenannt werden.

Müsste man mal weitersehen. Geht prinzipiell. Aber du gibst zu wenig Infos wie die Dateien heißen etc.



Es ist dabei egal, ob VB, VBS, PS oder eben Batch da die Umsetzung ehr das kleine Problem ist. Schwieriger dürfte das Zerlegen deiner Aufgabe in eine abbildbare Programmlogik sein und die Schwierigkeit bleibt bei jeder Programmiersprache die gleiche.
 
Zuletzt bearbeitet:
So sieht die dritte Datei aus:

*KEYWORD
*MAT_POWER_LAW_PLASTICITY
$# mid ro e pr k n src srp
1 2.6600E-9 70000.000 0.330000 265 0.090 0.000 0.000
$# sigy vp
0.000 0.000
*END

sieht jetzt komisch aus aber müsste stimmen. die "Tabellen-zellen" sind immer 10 zeichen lang.
Es soll der Wert n geändert werden. das ist in diesem Fall die 0.090. z.b. im schritt von 0.001.
datei keißt material_data.txt und soll in material_data.k umbenannt werden.

danke schon mal für die Hilfe :)
 
Kann man sagen dass die zu bearbeitende Zahl immer hinter dem 5 Leerzeichen steht?
Ergänzung ()

In Batch kommt nun das Problem hinzu, daß man nicht mit Kommazahlen rechnen kann.

Es gibt zwar Möglichkeit durch Multiplikation auf Ganzzahlen zu kommen, aber an der Stelle würde ich zur Script oder Programmiersprache greifen. http://go.microsoft.com/?linkid=9782376

Die Batch ist weder das eine noch das andere, Batch ist nur Stapelverarbeitung von Kommandozeilenbefehlen.
 
Zuletzt bearbeitet:
Zurück
Oben