W tym samym stylu, co Szybkie tworzenie dużego pliku w systemie Linux , chciałbym szybko utworzyć duży plik w systemie Windows. Ogólnie myślę, że 5 GB. Treść nie ma znaczenia. Preferowane byłoby wbudowane polecenie lub krótki plik wsadowy, ale zaakceptuję aplikację, jeśli nie będzie innych łatwych sposobów.
windows
batch-file
Leigh Riffel
źródło
źródło
fsutil file createnew
NIE tworzy rzadkich plików: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
Możesz użyć narzędzia Sysinternals Contig . Ma
-n
przełącznik, który tworzy nowy plik o danym rozmiarze. W przeciwieństwie dofsutil
tego nie wymaga uprawnień administracyjnych.źródło
contig
skutecznie przechodzi do ostatniego bajtu i zapisuje tam pojedynczy0
(wystarczy spojrzeć za pomocą Monitora procesów). Windows następnie wypełnia resztę zerami. Jest to prawdopodobnie tak wydajne, jak to tylko możliwe w przypadku plików nielicznych, a utworzenie pliku o wielkości około 5 GiB zajmuje tylko kilka sekund, nawet na moim dysku twardym. Myślę, że wtedy próbowałem na dysku SSD lub z mniejszymi plikami. Jest to jednak dość szybkie (i zdecydowanie szybsze niż samodzielne zapisywanie wszystkich bajtów pustego pliku)Szukałem sposobu generowania dużych plików z danymi, a nie tylko plików rzadkich. Spotkałem się z poniższą techniką :
źródło
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
(Uruchom powyższe dwa polecenia jeden po drugim lub możesz dodać je do pliku wsadowego.) Powyższe polecenia tworzą plik 1 MB dummy.txt w ciągu kilku sekund.Sprawdź RDFC http://www.bertel.de/software/rdfc/index-en.html
RDFC prawdopodobnie nie jest najszybszy, ale alokuje bloki danych. Absolutnie najszybszy musiałby użyć interfejsu API niższego poziomu, aby uzyskać łańcuchy klastrów i umieścić je w MFT bez zapisywania danych.
Uważaj, że nie ma tu srebrnej kuli - jeśli „tworzenie” natychmiast powróci, oznacza to, że masz rzadki plik, który po prostu sfałszuje duży plik, ale nie dostaniesz bloków danych / łańcuchów, dopóki go nie napiszesz. Jeśli tylko przeczytasz, otrzymasz bardzo szybkie zera, które mogą sprawić, że uwierzysz, że twój napęd nagle stał się niesamowicie szybki :-)
źródło
Sprawdź narzędzia zestawu Windows Server 2003 Resource Kit . Istnieje narzędzie o nazwie Creatfil.
Jest podobny do pliku mk w systemie Solaris.
źródło
Potrzebowałem zwykłego pliku 10 GB do testowania, więc nie mogłem go użyć,
fsutil
ponieważ tworzy on rzadkie pliki (dzięki @ZXX).Chciałem utworzyć plik 10 GB, ale z jakiegoś powodu pokazał się tylko jako 4 GB, więc chciałem być bezpieczny i zatrzymać na 4 GB. Jeśli naprawdę chcesz mieć pewność, że plik będzie poprawnie obsługiwany przez system operacyjny i inne aplikacje, przestań go rozszerzać przy wielkości 1 GB.
źródło
rm
Jest polecenie Unix / Linux, adel
to polecenie DOS / Windows ...?%i
ale w pliku wsadowym używasz podwójnego znaku procentu, jak%%i
.@echo off
, więc oczywiście jest.bat
. Dlatego miał podwójne znaki procentowe.file-4gb.txt
przed utworzeniem? Czy nie spowodowałoby to błędu? Czy rzeczywiście chciałeś stworzyćfile-4gb.txt
w tej linii? Lub zmienić nazwę staregofile-big.txt
pliku? Nie jest to jasne, nawet w przypadku pliku wsadowego. Jeśli chcesz zmienić nazwę, prawdopodobnie szukałeś poleceniaren
. Jakren file-big.txt file-4gb.txt
. Myślę, że to myliłeśrm
.Otwórz Menedżera zadań Windows, znajdź największy proces, który uruchomiłeś, kliknij prawym przyciskiem myszy i kliknij
Create dump file
.Spowoduje to utworzenie pliku w stosunku do wielkości procesu w pamięci w folderze tymczasowym.
Możesz łatwo utworzyć plik o wielkości gigabajtów.
źródło
Bez napisania pełnej aplikacji, my, ludzie Python, możemy osiągnąć pliki dowolnej wielkości za pomocą czterech linii, tego samego fragmentu w systemie Windows i Linux (
os.stat()
wiersz jest tylko czekiem):źródło
Jedno-liniowy PowerShell do utworzenia pliku w
C:\Temp
celu zapełnienia dysku C: pozostawiając tylko 10 MB:źródło
Posługiwać się:
źródło
int
? Czy to zadziała w przypadku pliku 5 GB? Czy jest to ograniczone do 2 lub 4 GB? To, że trzeci parametrSetFilePointer()
to 0, sugeruje, że nie będzie działać dla pliku o pojemności 5 GB.Ostatnio szukałem sposobu na utworzenie dużego pliku zastępczego z alokacją miejsca. Wszystkie rozwiązania wyglądają niezręcznie. Wreszcie uruchomiłem
DISKPART
narzędzie w systemie Windows (wbudowane od systemu Windows Vista):Tam, gdzie MAKSYMALNY jest wynikowy rozmiar pliku, tutaj 20 GB.
źródło
Znalazłem doskonałe narzędzie, które można skonfigurować na https://github.com/acch/genfiles .
Wypełnia plik docelowy losowymi danymi, więc nie ma problemów z plikami rzadkimi, a dla moich celów (testowanie algorytmów kompresji) daje całkiem niezły poziom białego szumu.
źródło
Pliki tymczasowe powinny być przechowywane w folderze tymczasowym systemu Windows. Na podstawie odpowiedzi Rod możesz użyć następującego linera, aby utworzyć plik tymczasowy o pojemności 5 GB, który zwraca nazwę pliku
Wyjaśnienie:
[System.IO.Path]::GetTempFileName()
generuje losową nazwę pliku z losowym rozszerzeniem w folderze Temp systemu Windows[System.IO.File]::Create($_)
której tworzony jest plik.SetLength(5gb)
. Byłem trochę zaskoczony odkryciem, że PowerShell obsługuje Byte Conversion , co jest naprawdę pomocne..close
aby umożliwić innym aplikacjom dostęp do niego;$_
nazwą pliku jest zwracana i| ? { $_ }
jest zapewnione, że zwracana jest tylko nazwa pliku, a nie pusty ciąg znaków[System.IO.File]::Create($_)
źródło
Najprostszym sposobem, jaki znalazłem, jest to bezpłatne narzędzie: http://www.mynikko.com/dummy/
Tworzy fikcyjne pliki o dowolnym rozmiarze, które są wypełnione spacjami lub są wypełnione treściami nieściśliwymi (do wyboru). Oto zrzut ekranu:
źródło
Plain ol 'C ... to kompilacja pod MinGW GCC w systemie Windows XX i powinna działać na dowolnej „ogólnej” platformie C.
Generuje plik zerowy o określonym rozmiarze. Wynikowy plik NIE jest po prostu pozycją zajmującą przestrzeń katalogu, a w rzeczywistości zajmuje określoną liczbę bajtów. Jest to szybkie, ponieważ nie występują żadne rzeczywiste zapisy, z wyjątkiem bajtu zapisanego przed zamknięciem.
Moja instancja tworzy plik pełen zer - może się to różnić w zależności od platformy; ten program zasadniczo konfiguruje strukturę katalogów dla dowolnych wiszących danych.
źródło
Znalazłem rozwiązanie za pomocą DEBUG na stronie http://www.scribd.com/doc/445750/Create-a-Huge-File , ale nie znam łatwego sposobu na napisanie skryptu i wydaje się, że nie jest w stanie tworzyć pliki większe niż 1 GB.
źródło
... 1 MB plik dummy.txt w ciągu kilku sekund.
Zobacz tutaj: http://www.windows-commandline.com/how-to-create-large-dummy-file/
źródło
Możesz użyć polecenia cat powershell.
Najpierw utwórz prosty plik tekstowy z kilkoma znakami. Im więcej początkowych znaków wprowadzisz, tym szybciej będzie ono większe. Nazwijmy to out.txt. Następnie w PowerShell:
Poczekaj, aż plik będzie wystarczająco duży. Następnie naciśnij ctrl-c, aby go zakończyć.
źródło
Możesz wypróbować ten kod C ++:
Może wygenerowanie zajmie trochę czasu w zależności od szybkości procesora ...
źródło
Prosta odpowiedź w Pythonie: jeśli chcesz utworzyć duży prawdziwy plik tekstowy, użyłem prostej
while
pętli i byłem w stanie utworzyć plik 5 GB w około 20 sekund. Wiem, że to prymitywne, ale wystarczająco szybkie.źródło
Szybkie wykonanie lub szybkie pisanie na klawiaturze? Jeśli używasz Pythona w systemie Windows, możesz spróbować:
źródło
Inne rozwiązanie GUI: WinHex.
W przeciwieństwie do niektórych z już zaproponowanych rozwiązań, faktycznie zapisuje (puste) dane na urządzeniu.
Pozwala również wypełnić nowy plik wybranym wzorem lub losowymi danymi:
źródło
Wprowadziłem kilka dodatków do tej samej
fsutil
metody, jak wspomniano w wybranej odpowiedzi. Ma to na celu tworzenie plików o wielu różnych rozszerzeniach i / lub o różnych rozmiarach.Kod można sklonować z https://github.com/iamakidilam/bulkFileCreater.git
źródło