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.
  • Das Haupt Skript bekommt die Kontrolle zurück, und type Sie das Ergebnis.



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