batch-file
Dateien mit Stapel erstellen
Suche…
Einführung
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:
echo Hello World > myfile.txt
speichert "Hello World" in myfile.txtecho your name is %name% >> myfile.txt
fügt "your name is xxxx" in myfile.txt eindir 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