Suche…


Einführung

Eine nützliche Funktion von Batchdateien ist das Erstellen von Dateien. In diesem Abschnitt wird beschrieben, wie Sie Dateien mit Batchcode erstellen.

Syntax

  • Echo (hier eingeben, was Sie möchten) >> (Dateiname)
  • Echo (Variablenname) >> (Dateiname)

Bemerkungen

Wenn eine Datei vorhanden ist, überschreibt > die Datei und >> wird an das Ende der Datei angehängt. Wenn keine Datei vorhanden ist, erstellen beide eine neue Datei.

Auch das echo fügt Befehl automatisch eine neue Zeile nach der Zeichenfolge.

So

echo 1 > num.txt
echo 1 > num.txt 
echo 2 >> num.txt 

erstellt die folgende Datei:

1
2

Nicht das:

1 1 2

oder

1 2

Außerdem können Sie nicht einfach eine einzelne Zeile in einer Textdatei ändern. Sie müssen die gesamte Datei lesen, in Ihrem Code ändern und dann erneut in die gesamte Datei schreiben.

Umleitung

Format:

[command] [> | >>] [filename]

> speichert die Ausgabe von [Befehl] in [Dateiname].

>> hängt die Ausgabe von [Befehl] an [Dateiname] an.

Beispiele:

  1. echo Hello World > myfile.txt speichert "Hello World" in myfile.txt

  2. echo your name is %name% >> myfile.txt fügt "your name is xxxx" in myfile.txt ein

  3. dir C:\ > directory.txt speichert das Verzeichnis von C: \ in verzeichnis.txt

Echo zum Erstellen von Dateien

Möglichkeiten zum Erstellen einer Datei mit dem Befehl echo:

ECHO. > example.bat (creates an empty file called "example.bat")

ECHO message > example.bat (creates example.bat containing "message")
ECHO message >> example.bat (adds "message" to a new line in example.bat)
(ECHO message) >> example.bat (same as above, just another way to write it)

Wenn Sie eine Datei mit dem Befehl ECHO in einem bestimmten Verzeichnis auf Ihrem Computer erstellen möchten, tritt möglicherweise ein Problem auf.

ECHO Hello how are you? > C:\Program Files\example.bat

(This will NOT make a file in the folder "Program Files", and might show an error message)

Aber wie machen wir das? Nun, es ist wirklich extrem einfach ... Wenn Sie einen Pfad oder Dateinamen eingeben, der ein Leerzeichen enthält, denken Sie daran, "Anführungszeichen" zu verwenden.

ECHO Hello how are you? > "C:\Program Files\example.bat"
(This will create "example.bat" in the folder "Program Files")

Was aber, wenn Sie eine Datei erstellen möchten, die eine neue Datei ausgibt?

ECHO message > file1.bat > example.bat

(example.bat is NOT going to contain "message > file1.bat")
example.bat will just contain "message"... nothing else

Wie machen wir das? Nun, dafür verwenden wir das ^ -Symbol.

ECHO message ^> file1.bat > example.bat

(example.bat is going to contain "message > file1.bat")

Gleiches gilt für andere Sachen im Stapel

Der nächste Schritt setzt voraus, dass Sie etwas über Variablen und Anweisungen wissen:

Klicken Sie hier, um mehr über Variablen zu erfahren Klicken Sie hier, um zu erfahren, ob und wo andere Aussagen stehen

Variablen:

SET example="text"
ECHO %example% > file.bat
(This will output "text" to file.bat)

Wenn wir nicht "text" ausgeben wollen, sondern einfach nur% example%, dann schreiben Sie:

ECHO ^%example^% > file.bat
(This will output "%example%" to file.bat)

IF / ELSE-Anweisungen:

ELSE statements are written with "pipes" ||

IF ^%example^%=="Hello" ECHO True || ECHO False > file.bat

(example.bat is going to contain "if %example%=="Hello" echo True")
[it ignores everything after the ELSE statement]

Um die gesamte Zeile auszugeben, machen wir dasselbe wie zuvor.

IF ^%example^%=="Hello" ECHO True ^|^| ECHO False > file.bat

This will output:
IF %example%=="Hello" ECHO True || ECHO False

Wenn die Variable gleich "Hallo" ist, sagt sie "True", ansonsten "False".

Speichern der Ausgabe vieler Befehle

Verwenden Sie viele ECHO Befehle, um eine Batchdatei zu erstellen:

(
  echo echo hi, this is the date today
  echo date /T
  echo echo created on %DATE%
  echo pause >nul
)>hi.bat

Der Befehlsinterpreter behandelt den gesamten Abschnitt in Klammern als einen einzigen Befehl und speichert dann die gesamte Ausgabe in hi.bat .

hi.bat enthält jetzt:

echo hi, this is the date today
date /T
echo created on [date created]
pause >nul


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow