Batch-Datei schreiben-> Hilfe

Liebe community,

Ich habe folgende Frage:

Ich habe einen Ordner, z.b. C:\Dateien
Darin ist eine Textdatei, die heißt z.B. „land.txt“.
Da sind untereinander verschiedene Ländernamen drin, der Inhalt an sich ist egal

Nun möchte ich mit einem Programm in die erste Zeile einen benutzerdefinierten Text schreiben, in meinem Fall

ADD VALUE LABELS

nach diesem benutzerdefiniertem Text soll eine Leerstelle gesetzt werden und der Dateiname (ohne Endung) eingefügt werden, d.h. bei der datei land.txt sieht das am ende so aus

ADD VALUE LABELS land

eine Zeile weiter soll dann die ganz normale textdatei weitergehen. In die allerletzte Zeile des Dokuments möchte ich aber noch

EXECUTE.

schreiben.

Diese ganze Prozedur sollte möglichst automatisch ablaufen und mit allen möglichen Textdateien in einem Ordner das selbe gemacht werden.
Ist das technisch mit einer Batch Datei möglich?

Danke im Voraus, lg zooz

Ich habe einen Ordner, z.b. C:\Dateien
Darin ist eine Textdatei, die heißt z.B. „land.txt“.
Da sind untereinander verschiedene Ländernamen drin, der
Inhalt an sich ist egal
Nun möchte ich mit einem Programm in die erste Zeile einen
benutzerdefinierten Text schreiben, in meinem Fall
ADD VALUE LABELS land

eine Zeile weiter soll dann die ganz normale textdatei
weitergehen. In die allerletzte Zeile des Dokuments möchte ich
aber noch
EXECUTE.
schreiben.

Hallo Zooz,

ginge auch VBS?
Erstelle mal eine Datei mit der Endung .vbs , Inhalt:

Option Explicit
Const cOTF = "C:\Dateien\land.txt"
Dim objFSO, objOTF
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOTF = objFSO.OpenTextFile(cOTF,1)
while not objOTF.AtEndOfStream 
 WScript.Echo objOTF.ReadLine()
wend
Set objOTF = Nothing
Set objFSO = Nothing

und starte die Datei mit dem Explorer o.ä.
Wäre das ein erster Ansatz?

Gruß
Reinhard

ADD VALUE LABELS land

eine Zeile weiter soll dann die ganz normale textdatei
weitergehen. In die allerletzte Zeile des Dokuments möchte ich
aber noch

EXECUTE.

Kein Problem. Prinzipiell geht’s so:

ECHO ADD VALUE LABELS land \> prolog.txt
ECHO EXECUTE. \> epilog.txt
COPY prolog.txt+land.txt+epilog.txt landneu.txt

Natürlich solltest du alle Dateinamen vollqualifiziert ausschreiben und kannst zum Schluss die landneu.txt nach land.txt zurückkopieren.

Gruß

Parameter beim Batchaufruf ‚zerlegen‘

ADD VALUE LABELS land
eine Zeile weiter soll dann die ganz normale textdatei
weitergehen. In die allerletzte Zeile des Dokuments möchte ich
aber noch
EXECUTE.

Kein Problem. Prinzipiell geht’s so:

ECHO ADD VALUE LABELS land > prolog.txt
ECHO EXECUTE. > epilog.txt
COPY prolog.txt+land.txt+epilog.txt landneu.txt

Hallo Hermann,

mal angenommen der Programmaufruf wäre
Meinebatch.bat C:\Datei\land.txt

dann kann ich ja mit %%1 auf C:\Datei\land.txt „zugreifen“.
Wie trenne ich C:\Datei\land.txt?
Ich brauche ja für den ersten Echo-Befehl „land“
und für den Copy-Befehl „c:\datei“

Als ich gut in Batches war gab’s Dos 3.3 und da gab’s glaub kein
Token und Delim , kann man die Aufgabe des Trennens mit For… schaffen?
Oder mit Find, oder, oder,…?

Gruß ^ Danke
Reinhard

dann kann ich ja mit %%1 auf C:\Datei\land.txt „zugreifen“.
Wie trenne ich C:\Datei\land.txt?

Ich wüsste nicht, dass das geht - wenn man mal Powershell und ähnliche Erweiterungen ausser acht lässt. Für eine angenäherte Lösung würde ich anders ansetzen, und davon ausgehen, dass der Pfad und die Namenserweiterung der Eingabedatei festgeschrieben sind. Dann würde nicht der qualifizierte Dateiname als Parameter übergeben, sondern nur das Wort ‚land‘, und die Datei als %1.txt angesprochen werden (oder als %1%.txt, nicht aber als %%1, wie du dich oben vertippt hast).

Gruß

Hallo.

mal angenommen der Programmaufruf wäre
Meinebatch.bat C:\Datei\land.txt

dann kann ich ja mit %%1 auf C:\Datei\land.txt „zugreifen“.
Wie trenne ich C:\Datei\land.txt?
Ich brauche ja für den ersten Echo-Befehl „land“
und für den Copy-Befehl „c:\datei“

Schau mal z.B. hier: http://stackoverflow.com/questions/659647/how-to-get…

Sebastian.