Ähnlich wie beim schnellen Erstellen einer großen Datei auf einem Linux-System möchte ich schnell eine große Datei auf einem Windows-System erstellen. Im Großen und Ganzen denke ich 5 GB. Der Inhalt spielt keine Rolle. Ein eingebauter Befehl oder eine kurze Batchdatei wäre vorzuziehen, aber ich akzeptiere eine Anwendung, wenn es keine anderen einfachen Möglichkeiten gibt.
windows
batch-file
Leigh Riffel
quelle
quelle
fsutil file createnew
keine spärlichen Dateien:c:\>fsutil file createnew test.txt 0x100000
File c:\test.txt is created
c:\>fsutil sparse queryflag test.txt
This file is NOT set as sparse
Sie können das Sysinternals Contig- Tool verwenden. Es hat einen
-n
Schalter, der eine neue Datei einer bestimmten Größe erstellt. Im Gegensatzfsutil
dazu sind keine Administratorrechte erforderlich.quelle
contig
effektiv zum letzten Byte und schreibt dort eine einzelne0
(schauen Sie einfach mit Process Monitor). Windows füllt dann den Rest mit Nullen. Dies ist wahrscheinlich so effizient wie es mit nicht spärlichen Dateien möglich ist, und die Erstellung einer Datei mit einer Größe von etwa 5 GiB dauert selbst auf meiner Festplatte nur wenige Sekunden. Ich denke damals habe ich entweder auf einer SSD oder mit kleineren Dateien versucht. Aber es ist ziemlich schnell (und definitiv schneller, als alle Bytes der leeren Datei selbst zu schreiben.Ich suchte nach einer Möglichkeit, große Dateien mit Daten zu generieren, nicht nur mit spärlichen Dateien. Kam über die folgende Technik :
quelle
echo "This is just a sample line appended to create a big file.. " > dummy.txt for /L %i in (1,1,14) do type dummy.txt >> dummy.txt
(Führen Sie die beiden oben genannten Befehle nacheinander aus, oder Sie können sie einer Batchdatei hinzufügen.) Mit den obigen Befehlen wird innerhalb weniger Sekunden eine 1-MB-Datei dummy.txt erstellt.Schauen Sie sich RDFC http://www.bertel.de/software/rdfc/index-en.html an
RDFC ist wahrscheinlich nicht der schnellste, weist jedoch Datenblöcke zu. Die absolut schnellsten müssten eine API auf niedrigerer Ebene verwenden, um nur Clusterketten zu erhalten und diese in MFT zu stellen, ohne Daten zu schreiben.
Beachten Sie, dass es hier keine Silberkugel gibt - wenn "Schöpfung" sofort zurückkehrt, bedeutet dies, dass Sie eine spärliche Datei haben, die nur eine große Datei fälscht, aber Sie werden keine Datenblöcke / -ketten erhalten, bis Sie in sie schreiben. Wenn du nur liest, bekommst du sehr schnelle Nullen, was dich glauben lassen könnte, dass dein Laufwerk plötzlich unglaublich schnell wurde :-)
quelle
Überprüfen Sie die Windows Server 2003 Resource Kit-Tools . Es gibt ein Dienstprogramm namens Creatfil.
Es ähnelt mkfile unter Solaris.
quelle
Ich brauchte eine reguläre 10-GB-Datei zum Testen, konnte sie also nicht verwenden,
fsutil
da sie spärliche Dateien erstellt (danke @ZXX).Ich wollte eine 10-GB-Datei erstellen, aber aus irgendeinem Grund wurde sie nur als 4-GB-Datei angezeigt. Deshalb wollte ich sicher sein und bei 4 GB anhalten. Wenn Sie wirklich sicher sein möchten, dass Ihre Datei vom Betriebssystem und anderen Anwendungen ordnungsgemäß verarbeitet wird, beenden Sie die Erweiterung auf 1 GB.
quelle
rm
ist ein Unix / Linux-Befehl, währenddel
es ein DOS / Windows-Befehl ist? ...%i
in einer Batchdatei, Sie verwenden jedoch ein doppeltes Prozentzeichen wie%%i
.@echo off
, also ist es offensichtlich ein.bat
. Deshalb hatte es doppelte Prozentzeichen.file-4gb.txt
Sie, bevor Sie es erstellen? Würde das nicht zu einem Fehler führen? Wollten Sie eigentlich infile-4gb.txt
dieser Zeile erstellen ? Oder die altefile-big.txt
Datei umbenennen ? Dies ist selbst für eine Batch-Datei unklar. Wenn Sie es umbenennen wollten, ist der gesuchte Befehl wahrscheinlichren
. Wieren file-big.txt file-4gb.txt
. Ich denke, Sie haben das mit verwechseltrm
.Öffnen Sie den Windows Task-Manager, suchen Sie den größten Prozess, den Sie ausgeführt haben, und klicken Sie auf
Create dump file
.Dadurch wird eine Datei relativ zur Größe des Prozesses im Speicher in Ihrem temporären Ordner erstellt.
Sie können problemlos eine Datei mit einer Größe von Gigabyte erstellen.
quelle
Ohne eine vollständige Anwendung zu schreiben, können wir Python-Leute Dateien jeder Größe mit vier Zeilen und demselben Snippet unter Windows und Linux erstellen (die
os.stat()
Zeile ist nur eine Überprüfung):quelle
PowerShell-Einzeiler zum Erstellen einer Datei
C:\Temp
zum Ausfüllen von Datenträger C: Nur 10 MB verbleiben:quelle
Verwenden:
quelle
int
? Funktioniert dies für eine 5-GB-Datei? Ist dies auf 2 oder 4 GB begrenzt? Dass der dritte ParameterSetFilePointer()
0 ist, deutet darauf hin, dass er für eine 5-GB-Datei nicht funktioniert.Ich habe kürzlich nach einer Möglichkeit gesucht, eine große Dummy-Datei mit Speicherplatzzuweisung zu erstellen. Alle Lösungen sehen umständlich aus. Schließlich habe ich gerade das
DISKPART
Dienstprogramm in Windows gestartet (eingebettet seit Windows Vista):Wobei MAXIMUM die resultierende Dateigröße ist, hier 20 GB.
quelle
Ich habe ein hervorragendes Dienstprogramm gefunden, das unter https://github.com/acch/genfiles konfiguriert werden kann .
Es füllt die Zieldatei mit zufälligen Daten, so dass es keine Probleme mit spärlichen Dateien gibt, und für meine Zwecke (Testen von Komprimierungsalgorithmen) gibt es ein gutes Maß an weißem Rauschen.
quelle
Zeitarbeitsdateien sollten im Windows-Zeitarbeitsordner gespeichert werden. Basierend auf der Antwort von Rod können Sie den folgenden Liner verwenden, um eine temporäre 5-GB-Datei zu erstellen, die den Dateinamen zurückgibt
Erläuterung:
[System.IO.Path]::GetTempFileName()
generiert einen zufälligen Dateinamen mit zufälliger Erweiterung im Windows Temp-Ordner[System.IO.File]::Create($_)
den die Datei erstellt wird.SetLength(5gb)
. Ich war etwas überrascht zu entdecken, dass PowerShell die Byte-Konvertierung unterstützt , was sehr hilfreich ist..close
, damit andere Anwendungen darauf zugreifen können;$_
der Dateiname zurückgegeben und| ? { $_ }
damit wird sichergestellt, dass nur der Dateiname und nicht die leere Zeichenfolge zurückgegeben wird[System.IO.File]::Create($_)
quelle
Der einfachste Weg, den ich gefunden habe, ist dieses kostenlose Dienstprogramm: http://www.mynikko.com/dummy/
Erstellt Dummy-Dateien beliebiger Größe, die entweder mit Leerzeichen oder mit nicht komprimierbarem Inhalt gefüllt sind (nach Ihrer Wahl). Hier ist ein Screenshot:
quelle
Plain ol 'C ... dies wird unter MinGW GCC unter Windows XX erstellt und sollte auf jeder' generischen 'C-Plattform funktionieren.
Es wird eine Nulldatei mit einer bestimmten Größe generiert. Die resultierende Datei ist NICHT nur ein Verzeichnis-Space-Occupier-Eintrag und belegt tatsächlich die angegebene Anzahl von Bytes. Dies ist schnell, da außer dem vor dem Schließen geschriebenen Byte keine tatsächlichen Schreibvorgänge stattfinden.
Meine Instanz erzeugt eine Datei voller Nullen - dies kann je nach Plattform variieren. Dieses Programm richtet im Wesentlichen die Verzeichnisstruktur für alle Daten ein, die sich in der Nähe befinden.
quelle
Ich habe eine Lösung mit DEBUG unter http://www.scribd.com/doc/445750/Create-a-Huge-File gefunden , aber ich kenne keine einfache Möglichkeit, sie zu skripten, und sie scheint nicht in der Lage zu sein um Dateien zu erstellen, die größer als 1 GB sind.
quelle
... 1 MB Datei dummy.txt innerhalb weniger Sekunden.
Siehe hier: http://www.windows-commandline.com/how-to-create-large-dummy-file/
quelle
Sie können den Befehl cat Powershell verwenden.
Erstellen Sie zunächst eine einfache Textdatei mit wenigen Zeichen. Je mehr Anfangszeichen Sie eingeben, desto schneller wird es größer. Nennen wir es out.txt. Dann in Powershell:
Warten Sie, bis die Datei groß genug ist. Drücken Sie dann Strg-C, um es zu beenden.
quelle
Sie können diesen C ++ - Code ausprobieren:
Je nach CPU-Geschwindigkeit dauert das Generieren möglicherweise einige Zeit ...
quelle
Einfache Antwort in Python: Wenn Sie eine große echte Textdatei erstellen müssen, habe ich nur eine einfache
while
Schleife verwendet und konnte in etwa 20 Sekunden eine 5-GB-Datei erstellen. Ich weiß, dass es grob ist, aber es ist schnell genug.quelle
Schnell auszuführen oder schnell auf einer Tastatur zu tippen? Wenn Sie Python unter Windows verwenden, können Sie Folgendes versuchen:
quelle
Eine weitere GUI-Lösung: WinHex.
Im Gegensatz zu einigen der bereits vorgeschlagenen Lösungen werden die (leeren) Daten tatsächlich auf das Gerät geschrieben.
Sie können die neue Datei auch mit einem auswählbaren Muster oder zufälligen Daten füllen:
quelle
Ich habe einige Ergänzungen zu derselben
fsutil
Methode vorgenommen, die in der gewählten Antwort erwähnt wurde. Hiermit werden Dateien mit vielen verschiedenen Erweiterungen und / oder verschiedenen Größen erstellt.Der Code kann von https://github.com/iamakidilam/bulkFileCreater.git geklont werden
quelle