IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Операционные системы M$ (http://www.imho.ws/forumdisplay.php?f=2)
-   -   Kaк сделать пустой файл с большим размером? (http://www.imho.ws/showthread.php?t=84124)

estetan 19.04.2005 18:32

Kaк сделать пустой файл с большим размером?
 
Здравствуйте!
У меня ситуация такова, что на короткое время требуется создать файл, ничего не содержащий внитри, но с размером в несколько Гига. Ни одного файла подобного размера у меня нет. Можно ли из коммандной строки создать такой файл? Moжно, конечно, увеличить размер подкачки XP, но это не выход..
Спасибо за советы.

watson 19.04.2005 18:38

путём копирования одного предложения создай мега догумент txt, сожми его rar. Он правда будет весить меньше метра, но будет после распаковки больше гига.

estetan 19.04.2005 18:42

я что-то не понял. Рар его наоборот сожмет, а не растянет...
А копировать фразу или кашу до достигания 50 гига -это мне не 1 день уйдет.

Evgeni 19.04.2005 18:43

Сделай bat-файл с таким содержимым. Чем больше фраза, тем быстрее создасться
echo off
:start
echo "I Hate The World" >> result.txt
goto start

когда файл result.txt подрастет, создай его копию и запусти такой файл
echo off
:start
copy result.txt + result1.txt result.txt
goto start

estetan 19.04.2005 18:44

о, это уже идея. Только где мне указать, когда остановится, иначе это без конца будет, это Ехо :)

Mg0 19.04.2005 18:46

Можно гораздо проще. Если система 2К/ХР, то в cmd-шелле просто набираешь: Fsutil file createnew c:\testfile.txt 5 000 000 000. Создастся файл testfile.txt размером около 5 Гб.

Grek 19.04.2005 18:54

estetan
попробуй так:
fsutil file createnew c:\1.txt 5000
вместо 5000 укажи нужный размер в байтах

estetan 20.04.2005 19:18

благодарю за советы -создал файл. После чего столкнулся с очередной проблемой: можно ли "наполнить" этот созданный файл одним символом или фразой БЕЗ ручного копирования оной в файл. То есть, написать нечто подобное в командной строке- и цак, внутри все "1" :beer:

Cartman 20.04.2005 20:14

Я конечно могу ошибаться, но по моему этому топику прямая дорога в "Программирование"...

Mg0 20.04.2005 20:26

Есть такой бинарный редактор, WinHEX. Там можно определить блок (скажем, с начала и до конца файла) и заполнить его любым 16-ричным паттерном. Затрудняюсь только с максимальным размером файла. Наверняка есть аналогичные тулзы.

Псих 21.04.2005 10:30

Не уверен, но разве нельзя зделать так?
@echo off
:metka
echo 1 >> result.txt
goto metka
Разве это нам не даст заполнение файла единицами?

SapeR 21.04.2005 11:19

Цитата:

Псих:
Разве это нам не даст заполнение файла единицами?
даёт, только он не остановится пока диск не заполнит :)
лучше так:
Код:

@for /L %%i in (0,1,1000000) do @echo 1 >> result.txt

Evgeni 21.04.2005 12:48

Цитата:

SapeR:
даёт, только он не остановится пока диск не заполнит
Ну извините, можно ctrl-break нажать когда надоест. для ускорения, можно воспользоваться второй частью моего топика. только туда вставятся 2 символа (точнее 3) "1" и chr(10) + chr(13)

SapeR 21.04.2005 12:53

file size = 1kb
@for /L %%i in (0,1,1024) do @echo 1 >> result1.txt
file size = 1mb
@for /L %%i in (0,1,1024) do @type result1.txt >> result2.txt
file size = 1Gb
@for /L %%i in (0,1,1024) do @type result2.txt >> result3.txt

Borland 19.05.2016 12:11

Вложений: 1
Добавлю свои 5 копеек: cmd-файл, создающий файлы размером 1kb, 1mb и 1Gb, заполненные произвольным символом (и не содержащий, в отличие от вышеприведённых, лишних символов типа перевода строки и возврата каретки; нетрудно заметить, что файлы, создаваемые этим решением будут ровно в 3 раза больше указанных размеров именно засчёт лишних символов).
Для работы необходим файл "1byte", содержащий соответствующий символ (создаётся в любом текстовом редакторе, например встроенном в FAR manager), лежащий рядом с cmd-файлом.
Код:

copy 1byte 1kibibyte
for /l %%N in (1,1,10) do (
copy /b 1kibibyte+1kibibyte tmpfile
del /q 1kibibyte
ren tmpfile 1kibibyte
)
copy 1kibibyte 1mebibyte
for /l %%N in (1,1,10) do (
copy /b 1mebibyte+1mebibyte tmpfile
del /q 1mebibyte
ren tmpfile 1mebibyte
)
copy 1mebibyte  1gibibyte
for /l %%N in (1,1,10) do (
copy /b 1gibibyte+1gibibyte tmpfile
del /q 1gibibyte
ren tmpfile 1gibibyte
)

В аттаче - пример, создающий файлы, заполненные символом "" (0x01).


Часовой пояс GMT +4, время: 13:23.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.