Wie ändere ich die Größe einer Datei an der Eingabeaufforderung (oder in einer Stapeldatei)?
Die Datei muss als binär behandelt werden . Das Dateiformat ist irrelevant und beliebig.
Das Erweitern der Datei sollte sie mit Nullen auffüllen.
Das Verkleinern der Datei sollte die Datei abschneiden.
Mit anderen Worten:
Wie duplizieren Sie die Funktionalität von SetEndOfFile
in der Eingabeaufforderung?
windows
command-line
user541686
quelle
quelle
Antworten:
Ich glaube nicht, dass die Funktionalität nativ in der DOS-Shell vorhanden ist. Ich vermute, Sie müssen ein anderes Programm verwenden, um die Arbeit zu erledigen. Hier sind einige Möglichkeiten:
Es gibt ein Tool namens Trunc, das behauptet, genau das zu tun, wonach Sie suchen :
Sie müssen es ausprobieren, um herauszufinden, wie genau die Datei ausgefüllt wird (z. B. mit Nullen oder Müll), aber ansonsten scheint dies der Rechnung zu entsprechen.
fsutil ist ein Systemtool für Windows XP und höher, das anscheinend über einige Funktionen verfügt, die möglicherweise hilfreich sind. Insbesondere
fsutil file
scheint der Unterbefehl in der Lage zu sein, Dateien mit Nullfüllung zu erstellen, deren Länge festzulegen und diese zu füllen.Speziell:
Erstellt eine mit Nullen gefüllte 1024-Byte-Datei, aber ich kann keine Möglichkeit zum Abschneiden der Datei finden. Es gibt einen Befehl, der die gültige Datenlänge festlegt, den EOF-Marker jedoch nicht wie folgt zu ändern scheint:
UVHD ist ein Hex-Editor, der die Funktionen zu haben scheint, nach denen Sie fragen. Das einzige Problem ist, dass es nur unter Windows / SFU (Services for Unix) und nicht unter DOS funktioniert. Was das für einen Endbenutzer bedeutet, weiß ich eigentlich nicht, aber ich habe den vagen Verdacht, dass SFU in Vista und Win 7 gelöscht wurde.
quelle
trunc
macht was ich brauche. Oh, und ein Hinweis: SFU (oder besser gesagt SUA - "Subsystem für Unix-basierte Anwendungen", auch bekannt als Interix) wurde in Windows 7 nicht entfernt. es ist gerade eine optionale Komponente in der Ultimate-Version, leider. : \fsutil
und meine Antwort zu bearbeiten. Wie ich jedoch festgestellt habe, kann ich keine gültige Möglichkeit zum Abschneiden der Dateien finden.Natürlich nur zum Setzen auf 0 Bytes.
quelle
Wenn Sie GnuWin32 installiert haben, können
dd
Sie es verwenden.quelle
Probieren Sie mein BSD-Truncate-Build für Windows aus .
BEARBEITEN: Es funktioniert nicht mit Dateien> 2 GB.
Alternativen, die mit großen Dateien gut funktionieren:
quelle