Windows сгенерировать файл определенного размера

Иногда бывают ситуации, в которых требуется быстро создать один или несколько файлов произвольного размера. Операционная система Windows предлагает для этого несколько различных вариантов.

Создание файла с помощью fsutil

Быстрее и проще всего создать файл с помощью утилиты командной строки fsutil. Для примера откроем консоль (обязательно с правами администратора) и создадим на диске E файл file.txt размером 1ГБ командой:

fsutil file createnew E:\File.txt 1000000000

Таким образом можно создать файл любого размера, причем файл создается практически мгновенно.

создание файла с помощью fsutil

Создание файла с помощью PowerShell

То же самое можно сделать с помощью PowerShell, хотя команды будут немного сложнее:

$file = New-Object -TypeName System.IO.FileStream -ArgumentList E:\File.txt,Create,ReadWrite
$file.SetLength(1000Mb)
$file.Close()

Здесь мы сначала создаем объект типа файл, а затем с помощью метода SetLength присваиваем ему необходимый размер. Таким способом также можно мгновенно создать файл любого размера.

создание файла с помощью PowerShell, способ 1

Есть и еще один, альтернативный способ создания файла с помощью PowerShell. Если в первом случае мы создавали файл и задавали его размер, то здесь создаем содержимое нужного размера и помещаем это содержимое в указанный файл. Например:

$content = New-Object -TypeName Byte[] -ArgumentList 10Mb
Set-Content -Path E:\File.txt -Value $content -Encoding Byte

создание файла с помощью PowerShell, способ 2

При использовании этого метода создание файла занимает некоторое время, зависящее от размера файла. Кроме того, с его помощью невозможно создать файл большого размера. Максимальный размер файла ограничен встроенным значением [int]::MaxValue и при его превышении будет выдана ошибка ″Array dimentions exceeded supported range″.

ошибка при создании файла

Все описанные  способы создают пустые файлы (точнее файлы, заполненные символом NUL). Если надо создать файл заданного размера и заполнить его каким либо произвольным содержимым, то можно немного изменить предыдущий способ и воспользоваться такими командами:

$array = New-Object -TypeName Byte[] -ArgumentList 10Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
Set-Content -Path E:\File.txt -Value $array -Encoding Byte

создание файла и заполнение его данными

Ну и для генерации большого количества файлов (напр. 1000) можно воспользоваться таким скриптом:

$array = New-Object -TypeName Byte[] -ArgumentList 10Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
for ($i=1; $i -le 1000; $i++) {
Set-Content -Path E:\File.txt$i -Value $array -Encoding Byte
}

Работает небыстро, но для ускорения можно запустить скрипт в несколько потоков.

В повседневной работе по той или иной причине системному администратору периодически приходится создавать файлы определенного размера. Обычно необходимость в создании файла определенного размера возникает при тестировании различных подсистем, например вы хотите протестировать работу дисковых квот или фильтров электронной почты. Самый простой способ создать файл определенного размера – воспользоваться Windows-утилитой fsutil.exe. Эта утилита командной строки, которую можно использовать для управления дисковыми квотами, различными манипуляциями с объектами файловой системы, а также для выполнения различных манипуляций с файлами.

Например, вы тестируете работу модуля статистики вашего почтового сервера, и вам нужно создать файл размером 10 Мб и отправить его по почте. Наберите в командной строке с повышенными привилегиями следующую команду:

fsutil file createnew C:\10mb-file.txt 10000000

Эта команда создаст в корне диска C:\ новый файл с именем ’10mb-file.txt’, размером 10000000 байт (10 Мб).

На линухах я бы сделал так:

dd if=/dev/random of=storage.dvr bs=1024 count=30000000

В винде пользуюсь для создания пустых файлов заданного размера:
fsutil file createnew c:\storage.dvr 1074000000
А вот для заполненных данными… Может как-то так:

echo 1 > file
for /L %i in (1,1,1000) do echo %i >> file

PowerShell. Создает файл в C:\Temp, заполненяет диск C: оставляя только 10 МБ:

[io.file]::Create(«C:\temp\bigblob.txt»).SetLength((gwmi Win32_LogicalDisk -Filter «DeviceID=’C:'»).FreeSpace — 10MB).Close

Источник

Вопрос зачем это нужно? Если для очистки свободного пространства от старых данных то нужно гуглить по «wipe disk», если же для какой то другой цели есть самопальная утилита, которая как раз этим занимается, потом еще проверяет, что то что он записал и то что он потом считывает это одно и тоже.

Sometimes, to test a system (program interactions, email, filters), you need to create a file of a certain size. Windows has two standard tools for creating a custom size file.

Content

  1. Create file using command prompt
  2. Create file using PowerShell

Article in other languages:
?? – Cómo crear un archivo de tamaño específico en Windows
?? – Как создать файл определенного размера в Windows
?? – Comment créer un fichier de taille spécifique sous Windows
?? – So erstellen Sie eine Datei mit einer bestimmten Größe in Windows
?? – Hoe maak je een bestand met een specifieke grootte in Windows

Create file using command prompt

Use the fsutil command to create a file of the specified size using the Windows command prompt. The file size for this command is specified in bytes.

Create 1 MB TestFile.txt:

fsutil file createnew D:\TestFile.txt 1048576

If you get “Error: Access denied” when creating a file at the specified location – run command prompt as administrator.

Create a file of a specific size using the Windows command prompt. Error: Access is denied, while creating file

Error: Access is denied, while creating file

Create file using PowerShell

Create empty file of specified size

To create a file of a specific size with Windows PowerShell, use the following sequence of commands (file size is specified in: Kb, Mb, Gb):

$file = New-Object -TypeName System.IO.FileStream -ArgumentList D:\TestFile.txt,Create,ReadWrite
$file.SetLength(1Mb)
$file.Close()

Windows PowerShell will create an empty file (filled with NULL characters) of the selected size.

If, when creating a file in the specified location, you receive an error: “New-Object : Exception calling “.ctor” with “3” argument(s): “Access to the path … “- run Windows PowerShell as administrator.

Create a file of a specific size using Windows PowerShell. Error: Access to the path, when creating a file

Error: Access to the path, when creating a file

Create non-empty file of given size

To create a 1 MB non-empty file (random content), run the Windows PowerShell commands:

$array = New-Object -TypeName Byte[] -ArgumentList 2Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
Set-Content -Path D:\TestFile.txt -Value $array -Encoding Byte

File creation speed will depend on the specified file size and the specifications of your computer.

Create non-empty file of arbitrary size using Windows PowerShell

Create a non-empty file of arbitrary size using Windows PowerShell

Create multiple files of a given size

Create 5 non-empty files (random content) 1MB in size using Windows PowerShell:

$array = New-Object -TypeName Byte[] -ArgumentList 1Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
for ($i=1; $i -le 5; $i++) {Set-Content -Path D:\Test\TestFile$i.txt -Value $array -Encoding Byte}

The speed of files creation will depend on the specified files size and the characteristics of your computer.

Create multiple files of arbitrary size using Windows PowerShell

Creating multiple files of arbitrary size using Windows PowerShell

? How to create a file of a specific size has been discussed in this article. Now you can create a file or several files of arbitrary size for testing programs or services. However, if you run into any problems, do not hesitate to write in the comments. I will try to help.

Необходимость создать файл определенного размера возникает, когда надо, например, потестировать пропускную способность почтового ящика либо даже дисковой подсистемы на практике, но лень искать готовые файлы подходящего размера.

Возможность создать файл заданного размера в Windows есть, реализуется она через командную строку.

fsutil — это консольная утилита для управления объектами файловой системы.

file — это параметр утилиты fsutil, работающий с файлами

createnew — это, как нетрудно догадаться, параметр, создающий новый объект на диске

далее идет путь к файлу, который надо создать, и его размер в байтах (все аргументы и значения вводятся через пробел).

Таким образом, приведенная в примере команда создает файл, лежащий в корне диска C: с именем 10mb-file.txt размером в 10 миллионов байт.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 7 home premium как переводится
  • Как обновиться до windows 11 пошагово
  • Сколько нужно памяти чтобы установить windows 10
  • Coremessaging что это за служба windows 10
  • Почему не работают колонки на компьютере если они включены на windows 10