0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

空き容量を意図的に減らす

Posted at

最近、C ドライブの空き容量が少ないときに OS がどのような動作をするか調査する機会がありました。fsutil file コマンドにより、簡単に空き容量の調整ができたので、使用した PowerShell スクリプトを残しておきます。

環境

Windows OS 全般

PowerShell スクリプト

# Cドライブの情報を取得
$drive = Get-PSDrive -Name C

# Cドライブの空き容量 (バイト単位)
$freeSpace = $drive.Free

# 1GB (1073741824 バイト)
$targetFreeSpace = 1GB

# 1GBを残すために作成するダミーファイルのサイズ (バイト単位)
$dummyFileSize = $freeSpace - $targetFreeSpace

# 作成するダミーファイルのパス
$dummyFilePath = "C:\dummyfile.dat"

# ダミーファイルのサイズが正の数の場合のみファイルを作成
if ($dummyFileSize -gt 0) {
    fsutil file createnew $dummyFilePath $dummyFileSize
} 

スクリプト解説

この PowerShell スクリプトは、Cドライブの空き容量を計算し、1GB の空き容量を残すように指定したサイズのダミーファイルを作成するものです。これにより、Cドライブの空き容量を自動的に 1GB まで減らすことができます。

1. Cドライブの情報を取得

$drive = Get-PSDrive -Name C

Get-PSDrive コマンドを使用して、Cドライブの情報(容量、空き容量など)を取得し、$drive 変数に C ドライブの情報が格納しています。

2. Cドライブの空き容量 (バイト単位) を取得

$freeSpace = $drive.Free

$drive.Free は、Cドライブの空き容量をバイト単位で返します。この空き容量が $freeSpace 変数に格納されます。

3. 1GB をバイトで表す定数を指定

$targetFreeSpace = 1GB

1GBは 1,073,741,824 バイト(2の30乗)です。このサイズを $targetFreeSpace 変数に格納しています。この1GBを「目標の空き容量」として設定し、それ以上に空き容量がある場合にファイルを作成していきます。

4. 作成するダミーファイルのサイズを計算

$dummyFileSize = $freeSpace - $targetFreeSpace

現在の空き容量 $freeSpace から目標の空き容量 $targetFreeSpace(1GB)を引いた値が、ダミーファイルのサイズとなります。つまり、Cドライブの空き容量が1GBになるように調整したサイズのダミーファイルを作成するために、このサイズを計算しています。

5. ダミーファイルのパスを指定

$dummyFilePath = "C:\dummyfile.dat"

ダミーファイルの保存場所とファイル名を指定しています。ここでは、C:\dummyfile.dat としてファイルを作成するように設定しています。

6. 空き容量が 1GB より多い場合にダミーファイルを作成

if ($dummyFileSize -gt 0) {
    fsutil file createnew $dummyFilePath $dummyFileSize
}

計算したダミーファイルのサイズ $dummyFileSize が正の値(0より大きい)場合にのみ、ダミーファイルを作成します。fsutil file createnew コマンドを使うと、指定したパス $dummyFilePath$dummyFileSize のサイズを持つ空のファイルが作成できます。作成完了まで、それほど時間はかかりません。

さいごに

データは、バックグラウンドで作成されたり、削除されたりするものがあり、スクリプト実行してから時間が経つと空き容量が 1GB ではなくなりますが、正確さは問題ではないのでいいかなと思ってます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?