zero-cool
Goto Top

Wort/satz x-mal in eine texdatei schreiben

Guten Tag meine Herren...

also ich will eine Batchdatei schreiben die eine Textdatei erstellt und ein Wort x-mal in die Textdatei einfügt.

zb:

echo testwort > test.doc

Aber das "testwort" soll, sagen wir mal 250mal in diese textdatei eingefügt werden.

Gäbe es auch eine Möglichkeit jedes Wort in eine andere Farbe zuschreiben?...
Also ich meine das erste Wort ist blau das zweite grün das dritte rot usw....und nach dem 10ten Wort sollen sich die Farben wiederholen...

Ich weiß nicht ob diese Frage schon gestellt wurde, aber ich würde mich sehr freuen wenn ihr mir helfen könntet.

PS: Betriebsystem: WinXP Pro

MfG

Zero Cool

Content-Key: 33384

Url: https://administrator.de/contentid/33384

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: Biber
Biber 31.05.2006 um 18:42:54 Uhr
Goto Top
Moin, Zero-Cool,

ein Wort oder einen Satz x-Mal (in eine Textdatei) zu schreiben, geht schon vom CMD-Prompt aus oder auch im Batch.
Allerdings mit zwei Eigenheiten (oder Standardverhalten, sollte ich sagen).

1) Textdateien am CMD-Prompt enthalten per definitione plain text, unformatierte Zeichen, die weder Fett noch kuriv noch unterstrichen noch rot, gelb oder grün dargestellt werden sollen/können.
Gutes Beispiel ist der DIR-Befehl: der zeigt Dir Deine Dateien auch nicht verschiedenfarbig an und könnte erst recht nicht die Farbattribute speichern, wenn Du die Ausgabe in eine Textdatei umlenkst. (DIR *.* >Dateiliste.txt).
Wenn Du Text mit Farbattributen speichern willst, kannst Du z.B. einen Text in HTML-Format erzeugen.
Aber das farbige Anzeigen ginge auch wieder nur über einen Editor/einen Browser, der diese Formatierungen versteht und als Farbe darstellen kann.

2) Zweite Einschränkung: Das Schreiben in eine Textdatei funktioniert normaler immer zeilenweise.
Das heißt eine Schleife
FOR %i in (eins, zwei, drei) do @echo %i

erzeugt an Bildschirm oder bei Umleitung in eine Textdatei dieses:
eins
zwei
drei

und nicht etwa eine Zeile
eins zwei drei

Um x-mal ein Wort in eine Zeile zu schreiben, müsstest du es wiederum in einer Schleife in einer Variablen "sammeln" und danach rausschreiben.
::---Beispielbatch
@echo off
Set Zeile=
For /L %%i in (1,1,10) do call :Add2Zeile  XMal
echo Zeile: %Zeile%
goto :eof
:Add2Zeile
Set Zeile=%1 %zeile% 
goto :eof
:: --beispielbatch
Output ist dann:
Zeile: XMal XMal XMal XMal XMal XMal XMal XMal XMal XMal

Gruß
Biber
Mitglied: Zero-Cool
Zero-Cool 31.05.2006 um 21:07:56 Uhr
Goto Top
ehm ja ist nachvollziehbar hab mir schon gedacht das mit den farben und co aber naja fragen kann man ja immer

aber irgendwie versteh ich die ganzen befehle nicht
bin auf dem gebiet ganz neu...
ich muss ja jetzt noch nen befehl geben, dass er eine textdatei erstellt und das "XMal" dort einfügt. Aber von wo weiß ich wohin genau und wie genau dieser befehl aussieht und hin muss?
Mitglied: Biber
Biber 31.05.2006 um 22:14:56 Uhr
Goto Top
Na ja, Zero-Cool,

im Bereich Batch & Shell sind ein paar kleine forumsinterne Tutorial und auch ein paar Links zu anderen Batch & Shell-Seiten.
Stöber mal rum.

Der Schnipsel von oben:
::---Beispielbatch
@echo off
Set Zeile=
For /L %%i in (1,1,10) do call :Add2Zeile  XMal
echo Zeile: %Zeile%
goto :eof
:Add2Zeile
Set Zeile=%1 %zeile% 
goto :eof
:: --beispielbatch
...kann entweder so aufgerufen werden ( wenn Du ihn als AddxMal.bat abgespeichert hast)
und so kann die Ausgabe in eine neue Textdatei geschrieben:
AddxMal >NeuTextdatei.txt
- oder an eine vorhandene angehängt werden -
AddxMal >>Textdatei.txt

Du kannst auch zwei Parameter definieren für "Wort" und "Anzahl"
::---Addxmal.bat
:: Parameter 1: "Wort" Parameter 2: Anzahl 
If [%1]== (echo Kein Parameter angegeben!) && goto :eof 
@echo off
Set Zeile=
For /L %%i in (1,1,%2) do call :Add2Zeile %1
echo Zeile: %Zeile%
goto :eof
:Add2Zeile
Set Zeile=%1 %zeile% 
goto :eof
:: ---snap Addxmal.bat

..Dann kannst Du den Schnipsel flexibler aufrufen:
AddXmal lalelu 77
...wird, wenn ich keine Tippfehler drin habe, Dir 77x lalelu auf den Bildschirm schreiben.
AddXmal lalelu 77 >lalelu.txt ........schreibt es in eine Datei.

Gruß
Biber
Mitglied: Zero-Cool
Zero-Cool 31.05.2006 um 22:51:17 Uhr
Goto Top
ich hab zwar nix verstanden was du da oben geschrieben hast aber ich habs so halba hinbekomm, hab bischen rumprobiert

@echo off
Set Zeile=
For /L %%i in (1,1,250) do call :Add2zeile Dies ist ein Test!
echo Zeile: %Zeile% >NeuTextdatei.doc
goto :eof
:Add2Zeile
Set Zeile=%1 %zeile%
goto :eof

so sieht meine .bat-datei aus...ich hab aber nun wieder ein problem undzwar, dass statt der ganze satz xMal eingefügt nur das wort "dies" xMal eingefügt wird...
wahrscheinlich stehts hier im forum schon, aber ich geh jetzt schlafen und morgen fahr ich weg und naja wär nett wenn mir jetzt noch einer helfen würde weil ich kein inet in der zeit haben werde und wenn ich nicht diese batch datei hinbekommen kann ich nicht schlafen und muss immer darüber denken...

danke nochmals für deine hilfe biber

PS: wenn ihr meint ich solls selber herrausfinden dann ist das auch gut
ich hoffe bloß die haben dort wenigstens nen PC xDD

naja gute nacht bin jetzt schlaaaafen *schnarch*