Werte aus einer Datei in eine andere schreiben
Lese Inhalt ab Zeile 4, schreibe in neue Datei
Hallo zusammen,
ich habe eine Datei "sqlvalue.txt" mit folgendem Inhalt:
Aus dieser Datei möchte ich die vierte Zeile (den Inhalt) auslesen und in eine andere Datei "sqlvalue3.txt" schreiben.
Das wollte ich so machen, dass ich die ersten 3 Zeilen überspringe und ab da alle Zeilen in eine neue Datei schreibe. Dafür habe ich folgenden Befehl:
Jedoch passiert nichts, wenn ich skip=3 im Befehl stehen habe. Ohne skip=3 schreibt er mir eine Datei, aber anstatt dem Inhalt der sqlvalue.txt schreibt er mir den Pfad zur Datei rein...
Bin jetzt ehrlich gesagt etwas überfragt, woran das liegen könnt.
Kann mir jemand kurz "Schützenhilfe" geben?!
Vielen Dank
Lars
Hallo zusammen,
ich habe eine Datei "sqlvalue.txt" mit folgendem Inhalt:
Ausfhrungszeit: 0,016 Sekunden
Feld_Name
Inhalt des Feldes mit Leerzeichen
(Erste 1 Zeilen)
Feld_Name
Inhalt des Feldes mit Leerzeichen
(Erste 1 Zeilen)
Aus dieser Datei möchte ich die vierte Zeile (den Inhalt) auslesen und in eine andere Datei "sqlvalue3.txt" schreiben.
Das wollte ich so machen, dass ich die ersten 3 Zeilen überspringe und ab da alle Zeilen in eine neue Datei schreibe. Dafür habe ich folgenden Befehl:
for /F "delims=\ tokens=* skip=3" %%a in ("%temp%\sqlvalue.txt") DO echo %%a>>%temp%\sqlvalueline3.txt
Jedoch passiert nichts, wenn ich skip=3 im Befehl stehen habe. Ohne skip=3 schreibt er mir eine Datei, aber anstatt dem Inhalt der sqlvalue.txt schreibt er mir den Pfad zur Datei rein...
Bin jetzt ehrlich gesagt etwas überfragt, woran das liegen könnt.
Kann mir jemand kurz "Schützenhilfe" geben?!
Vielen Dank
Lars
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139453
Url: https://administrator.de/contentid/139453
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo Larz!
Je nachdem, ob Du alles ab Zeile 4 oder nur Zeile 4 schreiben möchtest, würden sich zB folgende Varianten anbieten:
Ab Zeile 4:
(wobei Leerzeichen verloren gehen und die Zieldatei vorweg gelöscht werden müsste) oder einfacher:
Nur Zeile 4:
Noch ein Hinweis zu "
Grüße
bastla
Je nachdem, ob Du alles ab Zeile 4 oder nur Zeile 4 schreiben möchtest, würden sich zB folgende Varianten anbieten:
Ab Zeile 4:
for /f "usebackq skip=3 delims=" %%a in ("%temp%\sqlvalue.txt") do >>"%temp%\sqlvalueline3.txt" echo %%a
more +3 "%temp%\sqlvalue.txt">"%temp%\sqlvalueline3.txt"
@echo off & setlocal
set "Zeile="
for /f "usebackq skip=3 delims=" %%a in ("%temp%\sqlvalue.txt") do if not defined Zeile set "Zeile=%%a"
>"%temp%\sqlvalueline3.txt" echo\%Zeile%
usebackq
": Dieses ist erforderlich, weil der Pfad zu "sqlvalue.txt" unter Anführungszeichen angegeben ist (was bei Verwendung von "Original"-%temp% - siehe unten - und Vermeidung von Leerzeichen im Dateinamen eigentlich nicht nötig wäre) ...Grüße
bastla
Hallo Lars,
ich hab's jetzt nicht getestet, meine erste Idee war die Anführungszeichen wegzulassen. Allerdings kann es da Probleme geben, wenn die %temp% ein Leerzeichen enthält.
Das würde halt den Pfad-Output erklären.
Versuch's aber mal mit: tokens=4
Hier: http://www.robvanderwoude.com/ntfortokens.php
...ist eine ganz gute Erklärung für tokens+delims
Gruß, Tobias
ich hab's jetzt nicht getestet, meine erste Idee war die Anführungszeichen wegzulassen. Allerdings kann es da Probleme geben, wenn die %temp% ein Leerzeichen enthält.
Das würde halt den Pfad-Output erklären.
Versuch's aber mal mit: tokens=4
Hier: http://www.robvanderwoude.com/ntfortokens.php
...ist eine ganz gute Erklärung für tokens+delims
Gruß, Tobias
@KHP
Grüße
bastla
Allerdings kann es da Probleme geben, wenn die %temp% ein Leerzeichen enthält
Richtiger Einwand; soferne%temp% allerdings nicht durch einen eigenen Wert überschrieben wurde (also - zB unter XP - noch auf den Ordner "TEMP=C:\Dokumente und Einstellungen\Username\Lokale Einstellungen\Temp" verweist), wird automatisch (aus Kompatibilitätsgründen) die Kurzschreibweise "C:\DOKUME~1\USER\LOKALE~1\Temp" verwendet ...Grüße
bastla
@KHP
Gerne : -)
Übrigens: Für einen Überblick über die (meisten) der vom System zur Verfügung gestellten Variablen einfach an der Kommandozeile "
Grüße
bastla
Gerne : -)
Übrigens: Für einen Überblick über die (meisten) der vom System zur Verfügung gestellten Variablen einfach an der Kommandozeile "
set
" eingeben ...Grüße
bastla