Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Batch Inhalt von Textdatei löschen
- Ersteller o0Julia0o
- Erstellt am
madmax2010
Fleet Admiral
- Registriert
- Juni 2018
- Beiträge
- 31.989
loeschen und neu anlegen probiert?
- Registriert
- Dez. 2012
- Beiträge
- 2.782
Stimmt, geht ja auch. Aber hier kommt der mit dem Pfad nicht klar(dieser soll relativ zur Batch befindlich angegben sein): "Das System kann den angegebenen Pfad nicht finden."
Also test.bat, befindet sich hier: D:\Testordner
set PFAD=\Ordner1\Ordner2
set DATEI=test.txt
set INHALT=Name1
echo %INHALT% > %PFAD%%DATEI%
Hier soll die test.txt erstellt werden: D:\Testornder\Ordner1\Ordner2
Also test.bat, befindet sich hier: D:\Testordner
set PFAD=\Ordner1\Ordner2
set DATEI=test.txt
set INHALT=Name1
echo %INHALT% > %PFAD%%DATEI%
Hier soll die test.txt erstellt werden: D:\Testornder\Ordner1\Ordner2
Schritt 1: Dateiname auslesen
Schritt 2: Datei löschen
Schritt 3: Leere Datei mit dem gleichen Name anlegen
ist alles in Batch programmierbar und kannst du auch das für alle entsprechenden Dateien in dem Verzeichniss mit einer Schleife machen
Edit:
ja ist auch klar, der Pfad müss vollständig sein
also C:\Ordner1\Ordner2
außerdem %PFAD%%DATEI% muss dann so stehen %PFAD%\%DATEI%
Schritt 2: Datei löschen
Schritt 3: Leere Datei mit dem gleichen Name anlegen
ist alles in Batch programmierbar und kannst du auch das für alle entsprechenden Dateien in dem Verzeichniss mit einer Schleife machen
Edit:
ja ist auch klar, der Pfad müss vollständig sein
also C:\Ordner1\Ordner2
außerdem %PFAD%%DATEI% muss dann so stehen %PFAD%\%DATEI%
- Registriert
- Dez. 2012
- Beiträge
- 2.782
Jo, das geht ja auch einfacher mit Löschen und neue Textdatei anlegen mit neuem Inhalt. Zumal ich den Textdateinamen kenne.
So funktionier es nun:
set PFAD=Ordner1\Ordner2\
set DATEI=test.txt
set INHALT=Name1
echo %INHALT% > %PFAD%%DATEI%
Also vor Ordner1 kommt kein "\". Und am Ende von Ordner2 kommt ein "\". Weil ja unten beim echo kein "\" zwischen Pfad und Datei steht.
So funktionier es nun:
set PFAD=Ordner1\Ordner2\
set DATEI=test.txt
set INHALT=Name1
echo %INHALT% > %PFAD%%DATEI%
Also vor Ordner1 kommt kein "\". Und am Ende von Ordner2 kommt ein "\". Weil ja unten beim echo kein "\" zwischen Pfad und Datei steht.
Zuletzt bearbeitet:
Batchprogrammierung Grundkurs: " sind dein Freund in dem Fall
Das macht man so nicht, da man dieses, wenn man mal einen Pfad ausließt, auch nicht erhält in der Ausgabe (zumindest soweit ich noch weiß). Daher lieber zwischen den Variablen unterbringen
o0Julia0o schrieb:Und am Ende von Ordner2 kommt ein "\". Weil ja unten beim echo kein "\" zwischen Pfad und Datei steht.
Das macht man so nicht, da man dieses, wenn man mal einen Pfad ausließt, auch nicht erhält in der Ausgabe (zumindest soweit ich noch weiß). Daher lieber zwischen den Variablen unterbringen
Fusionator
Commodore
- Registriert
- Juni 2020
- Beiträge
- 4.663
Nach kurzem googeln aus reiner Neugiero0Julia0o schrieb:hi, gibt es einen Befehl, womit ich den Inhalt einer Textdatei komplett löschen kann?
set/p=<nul>"D:\Verzeichnis mit Leerstellen\echo.txt"
Pfad halt anpassen usw.
Aber um den Inhalt einer Textdatei durch etwas anderes zu ersetzen reicht doch ein
echo blabla >xyz.txt
Warum muss die Datei überhaupt vorher gelöscht werden?
Fusionator schrieb:Aber um den Inhalt einer Textdatei durch etwas anderes zu ersetzen reicht doch ein
echo blabla >xyz.txt
nope, das hängt nur den inhalt an, löscht nicht den vorhandenen inhalt.
Fusionator
Commodore
- Registriert
- Juni 2020
- Beiträge
- 4.663
Doch dochSebbi schrieb:löscht nicht den vorhandenen inhalt.
Sebbi schrieb:hängt nur den inhalt an,
> hängt den Inhalt ran.
Raijin
Fleet Admiral
- Registriert
- Nov. 2007
- Beiträge
- 18.285
> datei.txt
ersetzt den Inhalt der Datei>> datei.txt
hängt an den Inhalt der Datei anEine komplett leere (0 Byte) Datei erzeugt man in Batch zB mit
echo. 2>out.txt
Damit wird durch echo. eine Leerzeile erzeugt, aber wenn man diese direkt mit > in out.txt schieben würde, entstünde eben besagte Leerzeile. Durch 2>out.txt bedient man sich eines Redirects des stderr Streams, also der Fehlerausgabe. Da diese bei echo. jedoch komplett leer ist, wird eben dies in out.txt geschrieben und es entsteht eine 0-Byte-Datei.
Das aber nur der Vollständigkeit halber. @o0Julia0o möchte die Datei aber nicht löschen oder eine leere Datei erzeugen, sondern ihren Inhalt überschreiben oder die Datei mit eben diesem Inhalt neu erzeugen. Daher ist
echo bla>out.txt
vollkommen ausreichend. Just in case: Lässt man ein Leerzeichen zwischen bla und > wird dieses auch in die Datei geschrieben.Dieser Befehl führt also zu einer neuen/überschriebenen Datei mit dem Inhalt der Variablen INHALT + ein Leerzeichen am Endeo0Julia0o schrieb:echo %INHALT% > %PFAD%%DATEI%
I
Iqra
Gast
PS wäre
Wenn man das in PS öfter braucht kann man natürlich auch einfach eine Funktion erfinden Namens touch - oder touch-object mit Alias touch --- welche dasselbe tut und dann hat man dasselbe Verhalten wie unter unixoiden Systemen.
Set-Content -Value '' -Path pfad/zur/datei.txt
.-Value $null
oder -Value @()
sollten beide auch gehen, aber habe da auch schon ausnahmen geworfen bekommen, also nicht sicher. '' ist auch etwas kürzer und leistet dasselbe.Wenn man das in PS öfter braucht kann man natürlich auch einfach eine Funktion erfinden Namens touch - oder touch-object mit Alias touch --- welche dasselbe tut und dann hat man dasselbe Verhalten wie unter unixoiden Systemen.
Ähnliche Themen
- Antworten
- 3
- Aufrufe
- 1.096
- Antworten
- 11
- Aufrufe
- 2.647
I
- Antworten
- 1
- Aufrufe
- 728
- Antworten
- 6
- Aufrufe
- 1.090
- Antworten
- 12
- Aufrufe
- 4.144