ドロップボックスやBOXなどのクラウドストレージにファイルをアップロードする際に、アップロードファイルの容量が大きすぎてアップロードが失敗してしまったことはありませんか?
そんな時に便利なツールを作成しました。
容量の重い犯人ファイルをサクっと特定しましょう!
どんなツールか?
フォルダをドロップすると、フォルダ内のファイルサイズとファイルパスを出力するツールです。
- フォルダをドロップするとすべてのファイルをクロール
- フォルダ内のファイルの容量とパスをCSVに印字
- [CSV]A列:ファイルパス(C:\Users\Owner\Downloads~のような形式)
- [CSV]B列:サイズ(バイトで表示 単位不要 半角数字)
- CSVを作成する場所は、バッチファイルと同じ階層
- CSVのファイル名は「YYYYMMDDhhmm_filesizelist.csv」
このバッチファイルのコード
@echo off
setlocal enabledelayedexpansion
:: Get the current date and time in the YYYYMMDDhhmm format
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "dt=%dt:~0,12%"
:: Output csv file
set "csvfile=%~dp0%dt%_filesizelist.csv"
:: Write CSV headers
echo FilePath,Size > "%csvfile%"
:: Check if a directory was provided
if "%~1"=="" (
echo No directory was provided.
echo Please drag and drop the directory onto this batch file.
exit /b
)
:: Start from the directory that was dragged and dropped onto this batch file
set "folder=%~1"
:: Loop through all files in the provided directory and its subdirectories
for /r "%folder%" %%F in (*) do (
for %%A in ("%%F") do (
set "size=%%~zA"
echo %%F,!size! >> "%csvfile%"
)
)
:: Catch potential errors due to insufficient memory or unreadable files
if ERRORLEVEL 1 echo Error occurred while processing: Insufficient memory or unreadable file. >> "%csvfile%"
endlocal
※バッチファイルのつくり方については、「バッチファイル(bat)の作り方!Windowsで業務効率アップに活躍!」をご覧ください。
このバッチファイルの動作について
(1)容量チェックしたいフォルダを、バッチファイルにドロップします。
(2)バッチファイルと同階層にCSVが出力されれば完了です。
実行の初回は承認処理をしてください
初回はWindowsが「本当に実行して大丈夫?」的なことを聞いてきます。
「詳細情報」をクリックします。
実行ボタンが表示されるので「実行」をクリック。
上記で、次回以降はこのような表示なしで実行可能です。
おわりに
と、いうことでフォルダ内のファイル容量をCSVで出力するバッチファイルでした。
クラウドストレージはとても便利だし、安心感ありますが、今までつかっていたハードディスクなどから移設するとにファイル容量問題でモヤっとすることが多かったので、作ってみました。
お役に立てると嬉しいです。
ココで作ってもらいました!
私はココナラでツール作成してもらいました。もちろん、作成者にはこのツールの掲載許可を得ています。
「コレができるなら、こんなのも?」「ココをもっとこうしたら便利なのに…」と思った、ココナラで相談してみるとよいと思います。
様々なスキルを持った方とのマッチングが可能です。有償にはなってしまいますが、煩わしい作業や自身でできないこと、などお悩みの方はアウトソーシングの検討をおすすめします!