デスクトップへのファイルやフォルダ散乱という習性を持つ筆者は、デスクトップにある大量のファイルやフォルダをZIP圧縮、任意の場所にバックアップした上でデスクトップをきれいに削除するPowerShellスクリプトを生成AIの力も借りて短時間で作って奏功した。自宅の書斎Windowsで動作したPowerShellは、ワークプレイスのWindowsでも動作するであろう。さっそく「容量制限アラート付きのデスクトップお掃除プログラム」をワークプレイスのWindowsで試してみることにした。

ワークプレイスでは、デスクトップにあるいくつかのエクセルファイルは、テキストエディターによるGrep検索で高頻度で活用するために削除したくない。デスクトップのファイル情報を取得する最初のGet-ChildItem行にある除外演算子である-notinに'.csv', '.xlsx'を追加する。

Get-ChildItem "$env:USERPROFILE\Desktop" -File | Where-Object { $_.Extension -notin '.lnk', '.ps1', '.csv', '.xlsx'} | Remove-Item -Force;

自宅書斎マシンでは、\backupフォルダにZIP保存することで削除ファイルをバックアップしていたが、ワークプレイスにはOneDriveのクラウドスペースがテラバイト級で確保してある。これを使わない手はないであろう。保存先にOneDriveのパスを設定することでワークプレイスのブラウザやスマートフォンからアクセスできるようになる。また、1日に複数回の実行を考慮し、ファイル名を分単位で付けるようにyyyyMMddhhmm形式に変更する。

$destination = "C:\Users\●●●●\OneDrive - ●●●●\backup\$((Get-Date).ToString('yyyyMMddhhmm'))_BackUp.zip";

カスタマイズすると以下のようになる。

$source = [Environment]::GetFolderPath('Desktop');
$destination = "C:\Users\●●●●\OneDrive - ●●●●\backup\$((Get-Date).ToString('yyyyMMddhhmm'))_BackUp.zip";
Add-Type -A 'System.IO.Compression.FileSystem';
[IO.Compression.ZipFile]::CreateFromDirectory($source, $destination);
Get-ChildItem "$env:USERPROFILE\Desktop" -File | Where-Object { $_.Extension -notin '.lnk', '.ps1', '.csv', '.xlsx'} | Remove-Item -Force;
Get-ChildItem "$env:USERPROFILE\Desktop" -Directory | Where-Object { $_.Name -ne 'ショートカット名' } | Remove-Item -Recurse -Force;

$folderPath = "C:\Users\●●●●\OneDrive - ●●●●\backup"
    $sizeLimit = 1MB
    $folderSize = (Get-ChildItem $folderPath -Recurse | Measure-Object -Property Length -Sum).Sum

    if ($folderSize -gt $sizeLimit) {
        Write-Host "アラート: フォルダの容量 が制限を超えました。"
    };
Read-Host "Enterを押して終了";

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら