Windows Batch soll eine Datei erstellen und bearbeiten?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Leere Datei erstellen:

type nul > C:\temp\text.txt

Datei mit Text erstellen:

echo Ich bin ein Text>C:\temp\text.txt

Zeilen an Datei anfügen:

echo Ich bin die zweite Zeile>>C:\temp\text.txt

Input in eine Variable schreiben (Achtung, keine Leerzeichen um das Gleich-Zeichen machen):

set /p x=Gib mal was nettes ein: 

Ich würde dir aber allgemein empfehlen, dich nicht zu sehr mit Batch zu beschäftigen. Zumindest nicht, um etwas zu programmieren. Um einfach ein paar Programme nacheinander auszuführen, ist es gut, aber nicht wirklich für mehr. Für komplexere Sachen schau dir lieber Powershell an.

FrozenArmy 
Fragesteller
 20.04.2022, 09:08

Jo, alles klar, danke dir!

1
FrozenArmy 
Fragesteller
 20.04.2022, 09:40

Wie mache ich das bspw. wenn ich de Systemzeit ermitteln will und ins Dokument schreiben lasse, das geht ja mit folgendem Skript:

@echo off
echo Systemzeit: >> test.txt
time /T >> test.txt

Jetzt wird aber Systemzeit: in Zeile 1 geschrieben und die Zeit in Zeile 2. Wie bekomme ich beides in die selbe Zeile?

0
daCypher  20.04.2022, 09:44
@FrozenArmy

Dafür würde ich nicht die Funktion "time /T" benutzen, sondern die Umgebungsvariable %time%. Die hat aber zusätzlich Sekunden und Hudertstelsekunden drinstehen, deshalb musst du sie etwas kürzen:

echo Systemzeit: %time:~0,5%>>test.txt
0
FrozenArmy 
Fragesteller
 20.04.2022, 09:52
@daCypher

Naja, klappt zwar beim Ausführen des Batch Scripts, aber in der Datei wird dann nur der Text und nicht die Variablen angezeigt.

0
daCypher  20.04.2022, 10:16
@FrozenArmy

Was meinst du mit "in der Datei wird dann nur der Text und nicht die Variablen angezeigt"? Die Zeit, die in der Textdatei steht, aktualisiert sich natürlich nicht, aber es wird trozdem "Systemzeit: 10:16" in die Datei geschrieben

0
FrozenArmy 
Fragesteller
 20.04.2022, 10:20
@daCypher

Ja, da steht aber nur "Systemzeit:" ohne den Wert, also die Zeit.

Mein Script:

echo Date: %date /T% >>regis.txt
0
daCypher  20.04.2022, 10:38
@FrozenArmy

ja, natürlich, weil du versuchst, die date-Funktion als Variable zu benutzen. Ich hab oben ja auch geschrieben:

echo Systemzeit: %time:~0,5%>>test.txt

Für das Datum geht es dementsprechend mit

echo Date: %date%>>regis.txt
0
@echo off
  rem eine Zeile in eine Datei schreiben...
echo Ich habe einen Hund >"meine Datei.txt"
  rem eine Zeile in eine Datei anhängen...
echo Ich habe auch eine Fretchen >>"meine Datei.txt"
pause

ich weiß nicht was Du darüber hinaus noch vorhast...

Wenn das Ganze später auf komplexe Aufgaben hinauslaufen soll kann ich Dir nur empfehlen gleich eine Sprache zu wählen, welch besser als Batch mit Text umgehen kann.

im Moment mag Dir Batch zwar als sehr einfach erscheinen bei Komplexeren Aufgaben kann sich Batch auch in ganz anderem Licht zeigen: https://www.gutefrage.net/frage/batch-text-schnell-ablaufen-lassen#answer-421800895

Du hast bereits Bash erwähnt. Powershell ist gegenwärtig eine der fortschrittlichsten Scriptsprachen.

Wenn Du nicht nur einen "Schnellschuss" in Batch benötigst, lerne besser Powershell.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren