wie kann man per batch text umwandeln?

... komplette Frage anzeigen

4 Antworten

Wenn es nur die erste Zeile ist, dann geht

set /p irgendwas=<"Dateiname.Endung"

Wenn du einen bestimmten Teil speichern willst, kannst du mit dem FOR/F-Befehl danach suchen. Dazu musst du genau wissen, wie der Inhalt der gesuchten Zeile aussieht. Willst du z. B. von "Lebenspunkte=100" die "100" rausziehen, geht der Befehl

FOR /F "tokens=1,2 delims==" %%A IN ('type "Datei.Endung"') DO if "%%A" == "Lebenspunkte" set HP=%%B

Mehrere Zeilen in eine Variable zu speichern ist zwar möglich, allerdings kannst du diese funktionell nicht mehr verwenden. Das bedeutet, du kannst es nur noch über den ECHO-Befehl ausgeben lassen:

Setlocal EnableDelayedExpansion
set LF=^

FOR /F "delims=" %%A IN ('type "Datei.Endung"') DO set irgendwas=!irgendwas!%%A!LF!

"LF" steht für "Line Feed", in deutsch "Zeilenumbruch". Durch den SET-Befehl gefolgt von zwei Leerzeilen, die du nicht entfernen darfst, kann man den abspeichern und mit !LF! verwenden. Da du !irgendwas! aber in der FOR-Schleife mehrfach festlegst, musst du es mit Hilfe des SETLOCAL-Befehls aufrufen, wodurch die Funktionalität verloren geht.

Besteht der gespeicherte Wert also aus Batchbefehlen, kannst du diese nicht durch %irgendwas% ausführen.

Warum solls nicht angezeigt werden? Was beinhaltet die Datei? Und schließlich: Was ist der genaue Plan? Auf dem eigenen Rechner? Mehrfach?

Prinzipiell lässt sich das einfach und schnell mit der Powershell regeln.

Unter Linux gibts sed - den Stream-Editor der sowas perfekt beherrscht. 

https://wiki.ubuntuusers.de/sed/

Bekommt man unter Windows wenn man mag durch Cygwin. 

Alternativ kleines Programm schreiben oder mal Anleitungen zu Powershell durchforsten.

https://blogs.msdn.microsoft.com/zainnab/2007/07/08/grep-and-sed-with-powershell/

Kommentar von Firas2
22.06.2016, 23:59

ich brauche bloß einen einfachen code, den ich leider nicht kenn... also andere programme dafür downzuloaden würde ich nicht machen...

0

Du könntest die Datei löschen und eine andere mit Text einfügen.

Beispiel: Du möchtest Hallo in die dreieck.txt auf deinem desktop einfügen.

@echo off

del [Dateipfad]\\dreieck.txt

echo [Text] > [Dateipfad]\\dreieck.txt

exit

Das wäre der Befehl du musst halt noch den Dateipfad einsetzen und dreieck.txt nicht doppelt schreiben, bei [Text] natürlich den Text. Der Befehl echo mit > ermöglicht es dir einen Text in eine .txt file einzusetzen.

Wenn du etwas mit Batch an eine .txt Datei ransetzen möchtest wäre der Befehl:

@echo off

echo [Text] >> [Dateipfad]\\dreieck.txt

exit

Das doppelte > ermöglicht es dir etwas an einen Text ranzuhängen / nochmal in die .txt reinzuschreiben, während das einfache > alles in der .txt überschreibt.

Und hier ein Command zum schreiben eines eingetippten Textes in eine.txt:

@echo off

echo enter your text!

set /p text=Enter your text:

echo %text% >> / > [Dateipfad]dreieck.txt

exit

Wie viele von diesen >> Zeichen du brauchst habe ich dir ja oben erklärt, ich hoffe ich konnte dir weiterhelfen!

Was möchtest Du wissen?