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?
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?
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,…?
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).
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“