batch-file
Dateibehandlung in Batchdateien
Suche…
Einführung
In diesem Thema erfahren Sie, wie Sie Dateien im Stapel erstellen, bearbeiten, kopieren, verschieben und löschen.
Erstellen einer Datei im Stapel
Es gibt mehrere Gründe, warum Sie eine Textdatei im Stapel erstellen möchten. Was auch immer der Grund sein mag, so machen Sie es.
Wenn Sie eine vorhandene Textdatei überschreiben möchten, verwenden Sie >
. Beispiel:
@echo off
echo info to save > text.txt
Wenn Sie jedoch Text an eine bereits vorhandene Textdatei anhängen möchten, verwenden Sie >>
. Beispiel:
@echo off
echo info to save >> text.txt
Wenn Sie mehrere Textzeilen in einer Datei speichern ()>text.txt
verwenden Sie ()>text.txt
Beispiel:
@echo off
(echo username
echo password)>text.txt
So kopieren Sie Dateien stapelweise
Möglicherweise möchten Sie Dateien von einem Ort an einen anderen kopieren. In diesem Beispiel werden wir Sie unterrichten.
Sie können den Befehl xcopy
. Die Syntax lautet xcopy c:\From C:\To
Beispiel:
@echo off
xcopy C:\Folder\text.txt C:\User\Username\Desktop
Es gibt auch Schalter, die Sie verwenden können. Wenn Sie sie anzeigen möchten, öffnen Sie die Eingabeaufforderung über Start Menu -> Accessories -> Command Prompt
und geben Sie xcopy /?
Dateien verschieben
Mit dem Befehl zum Verschieben können Sie Dateien verschieben:
@echo off
cd C:\Foo\Bat\Baz
move /Y Meow.bat "Meow Folder" >nul
Meow.bat
steht für die zu verschiebende Datei. Der "Meow-Ordner" verschiebt Meow.bat
in den Meow Folder
. /Y
sagt, dass Sie nicht zur Bestätigung aufgefordert werden. Durch Ersetzen von /-Y
wird die Stapeldatei zur Bestätigung aufgefordert. Die >nul
blendet die Befehlsausgabe aus. Wenn es nicht >nul
, würde es folgendes ausgeben:
1 File Moved
Dateien löschen
Mit dem Befehl DEL
(Alias for ERASE
) können Dateien entfernt werden.
@echo off
del foo.ext
Dieser Befehl löscht foo.ext
aus dem aktuellen Verzeichnis. Sie können auch Pfad und Datei angeben, wie zum Beispiel:
del C:\Foo\Bar\Baz.ext
Aber es ist immer ideal Anführungszeichen zu setzen ( "
) um Pfaden finden Sie hier aus dem Grund.
Es gibt einige Flaggen für DEL
.
Flagge | Funktion |
---|---|
/P | Fordert den Benutzer vor dem Löschen der Datei (en) auf |
/F | Schreibgeschützte Dateien mit Gewalt entfernen |
/S | Datei (en) in Unterverzeichnissen entfernen |
/Q | Verhindert die Aufforderung des Benutzers |
/A | Filter: Nur bestimmte Attributdateien entfernen, |
Das Verwenden des - Zeichens bedeutet, dass dieser Typ nicht zugeordnet wird. |
Dateien kopieren ohne xcopy
In diesem Beispiel hat der Benutzer BoeNoe gezeigt, wie der Befehl xcopy
zum Kopieren von Dateien verwendet wird. Es gibt auch einen zusätzlichen Befehl namens copy
.
Hier ist ein einfaches Beispiel:
copy foo.ext bar.ext
Dies kopiert foo.ext
in bar.ext
und erstellt bar.ext
wenn es nicht vorhanden ist. Wir können auch Pfade zur Datei angeben, aber es ist immer ideal Anführungszeichen zu setzen ( "
) um Pfade finden Sie hier aus dem Grunde.
Es gibt auch viele Flaggen zum copy
, siehe copy /?
oder help copy
an einer Eingabeaufforderung, um mehr zu sehen.
Nte Zeile einer Datei bearbeiten
Die Batch-Datei enthält keine integrierte Methode zum Ersetzen der n
ten Zeile einer Datei, außer replace
und append
( >
und >>
). Mit for
Schleifen können wir diese Art von Funktion nachahmen.
@echo off
set file=new2.txt
call :replaceLine "%file%" 3 "stringResult"
type "%file%"
pause
exit /b
:replaceLine <fileName> <changeLine> <stringResult>
setlocal enableDelayedExpansion
set /a lineCount=%~2-1
for /f %%G in (%~1) do (
if !lineCount! equ 0 pause & goto :changeLine
echo %%G>>temp.txt
set /a lineCount-=1
)
:changeLine
echo %~3>>temp.txt
for /f "skip=%~2" %%G in (%~1) do (
echo %%G>>temp.txt
)
type temp.txt>%~1
del /f /q temp.txt
endlocal
exit /b
Das Hauptskript ruft die Funktion
replaceLine
mit dem Dateinamen / welche Zeile / und der zu ersetzenden Zeichenfolge auf.Funktion empfängt die Eingabe
- Es durchläuft alle Linien und
echo
sie in eine temporäre Datei , bevor der Ersatzleitung - Es
echo
es die Ersatzleitung in die Datei - Es wird weiterhin in den Rest der Datei ausgegeben
- Es kopiert die temporäre Datei in die Originaldatei
- Und entfernt die temporäre Datei.
- Es durchläuft alle Linien und
Das Haupt Skript bekommt die Kontrolle zurück, und
type
Sie das Ergebnis.