Windowsで空のファイル(0バイト)を削除する方法

一部のアプリケーションは、データフォルダーに空の0バイトファイルを作成し、それらを消去できません。 時間の経過とともに、フォルダー階層に多くのゼロバイトファイルが表示される場合、これらのすべての0バイトファイルを見つけて削除するいくつかの方法があります。

フォルダツリーで0バイトのファイルを再帰的に検索して削除する

0バイトのファイルを任意に削除すると、アプリケーションによってはプレースホルダーとして、またはその他の理由で必要になる場合があるため、問題が発生する場合があることに注意することが重要です。 フォルダーパスに0バイトのファイルが不要で、それらをすべて削除したい場合は、以下のいずれかの方法に従ってください。

まずは、きちんとしたサードパーティのフリーウェアGUIツールから始めて、次にネイティブメソッドについて説明します。

1.「空のファイルとフォルダを検索」ユーティリティを使用する

空のファイルを検索-n-フォルダーは、空のファイル(0バイト)と空のフォルダーをフォルダーツリーの下で再帰的に検索および削除できる優れたツールです。

Ashisoft.comからFind Empty Files-n-Folders(600KBインストーラー)をダウンロードします。

フォルダを選択し、[今すぐスキャン]をクリックします。

このツールは、空のファイルとフォルダーを個別のタブに一覧表示します。

[空のファイル]タブで[ すべてのファイルマーク ]をクリックし、[ ファイルの 削除 ]をクリックします

同様に、選択したフォルダーツリーで0バイトのファイルを削除するには、[ 空のファイル ]タブをクリックします。

Ashisoft.comには、チェックできる他の素晴らしいツールがあります!


2. Windows Searchを使用する

Windows Searchでは、 size:クエリ演算子を使用して、すべての0バイトファイルを一覧表示できます。

$config[ads_text6] not found

空のファイルを検索または削除するフォルダーを開きます。

検索ボックスに「 size:emptyまたは「 size:0 KB

ファイル拡張子(例:javascriptファイル→拡張子.js )で結果をフィルターするには、次のAdvance Query Syntax(AQS)を使用します。

 サイズ:空AND ext:js 


3.コマンドプロンプトの使用

すべての0バイト(0 KB)ファイルをフォルダーとサブフォルダーとして再帰的に一覧表示し、名前をファイルに出力するには、次のコマンドを使用します。

空の(0 KB)ファイルを検索または削除するフォルダーからコマンドを実行する必要があることに注意してください。

 (*)の/ r%Fの場合、@ if%〜zF == 0 echo "%F" >> d:\ 0byte-files.txtを実行します 

または、コンソールウィンドウでディレクトリを変更する必要がないように、 forコマンドにターゲットフォルダーのパスを含めることができます。 例:

 / r "d:\ websites"%F in(*)の場合、@ if%〜zF == 0 echo "%F"を実行>> d:\ 0byte-files.txt 

これにより、コマンドプロンプトで特定のフォルダーに切り替える必要がなくなります。

出力された0バイトファイルの完全なリストは、 D:\ドライブの0byte-files.txtという名前のファイルに書き込まれます。

ファイルを削除するには、 echo代わりにdelコマンドを使用します。

 (*。*)の/ r%Fの場合、@ if%〜zF == 0 del "%F"を実行します 

または、コマンド自体にターゲットフォルダーパスを記述します。

 / r "d:\ websites"%F in(*。*)の場合、@ if%〜zF == 0 del "%F"を実行します 

特定のファイル拡張子を持つ0バイトのファイルを見つけて削除する

上記の例では、ファイル拡張子でフィルタリングすることもできます。 たとえば、0バイトの.txtファイルを削除するには、 *.*または*代わりに*.* *.txtを使用します

 (* .txt)の/ r%Fの場合、@ if%〜zF == 0 del "%F"を実行します 

またはフォルダパスに言及して:

 / r "d:\ websites"%F in(* .txt)の場合、@ if%〜zF == 0 del "%F"を実行します 

これにより、現在のフォルダーとサブフォルダーから、または指定したフォルダーツリー内の空の.txtファイルがすべて再帰的に削除されます。

バッチファイルを作成する

空のファイルを見つけてリストし 、結果をテキストファイルに出力するバッチファイルを作成する場合は、次のようになります。

 @echo off set out = "d:\ 0byte-files.txt" / r "%〜1。" %% A入力(*。*)%%〜zA == 0の場合、エコー "%%〜fA" >>%out% 

上記の内容をfind-empty-files.batとして保存します。

ファイルのリストを出力するのではなく空のファイルを削除するには、次のバッチファイルを使用します。

 / e "%〜1"の@echoオフ。 (*。*)の%% Aは、%%〜zA == 0 del "%%〜fA"の場合に実行します 

バッチファイルをフォルダーに対して再帰的に実行するには、次の構文を使用します。

 d:\ scripts \ find-empty-files.bat d:\ websites 

上記のコマンドは何をしますか?

  • for /r %F in (*)場合、上記のフォルダーとサブフォルダーでファイルを再帰的に反復します。
  • if %~zF==0場合、反復ファイルが0バイトのファイルかどうかを確認します
  • del %%~fAは0バイトのファイルを削除します

関連: Windowsで空のフォルダーを自動的に検索して削除する方法


4. PowerShellの使用

PowerShell.exeを起動し、次のいずれかの方法を使用します。

空の(0 KB)ファイルを一覧表示

フォルダーツリーの下の0バイトファイルのリスト取得するには、次のコマンドライン構文を使用します。

 Get-ChildItem -Path "D:\ websites \ test" -Recurse -Force | Where-Object {$ _。PSIsContainer -eq $ false -and $ _。Length -eq 0} | -ExpandProperty FullNameを選択します 

リストをファイルに出力するには:

 Get-ChildItem -Path "D:\ websites" -Recurse -Force | Where-Object {$ _。PSIsContainer -eq $ false -and $ _。Length -eq 0} | -ExpandProperty FullNameを選択します。 Set-Content -Path d:\ found.txt 

リストをグリッドビューに出力するには:

 Get-ChildItem -Path "D:\ websites" -Recurse -Force | Where-Object {$ _。PSIsContainer -eq $ false -and $ _。Length -eq 0} | グリッドビュー 

特定のファイルタイプのみをリストするには(例: .bmp ):

 Get-ChildItem -Path "D:\ websites" -include * .bmp -Recurse -Force | Where-Object {$ _。PSIsContainer -eq $ false -and $ _。Length -eq 0} | グリッドビュー 

空の(0 KB)ファイルを削除する

フォルダーツリーの下にあるすべての0バイトのファイルを削除するには、次のコマンドライン構文を使用します。

 Get-ChildItem -Path "D:\ websites" -Recurse -Force | Where-Object {$ _。PSIsContainer -eq $ false -and $ _。Length -eq 0} | 削除アイテム 

特定の拡張子 (たとえば、 .bmp )を持つ0バイトのファイルを削除するには

 Get-ChildItem -Path "D:\ websites" -include * .bmp -Recurse -Force | Where-Object {$ _。PSIsContainer -eq $ false -and $ _。Length -eq 0} | 削除アイテム 

4. VBScriptの使用

次のVBScriptは、フォルダーツリー内の空の(0バイト)ファイルを再帰的にクリアします。

次のコードをメモ帳にコピーして、 del-zero-byte-files.vbsとして保存しdel-zero-byte-files.vbs

 Option Explicit If(WScript.Arguments.Count 1)Then WScript.Echo( "Usage:cscript DeleteEmptyFolders.vbs {path}")WScript.Quit(1)End If Dim strPath:strPath = WScript.Arguments(0)Dim fso: Set fso = CreateObject( "Scripting.FileSystemObject")Dim objFolder:Set objFolder = fso.GetFolder(strPath)Dim sDelList、sDelErr、sFilePath Dim iCnt iCnt = 0 DeleteZeroByteFiles objFolder Sub DeleteZeroByteFiles(folder)On Dim subfold 'On subfoldジャンクションなどにアクセスするときのエラーをスキップします。folder.SubFoldersのDeleteZeroByteFilesサブフォルダーごとにNext On Error Goto 0 for folder.filesの各ファイルごとにfile.size = 0 Then sFilePath = file.Path On Error Resume Next fso.DeleteFile file、 True If Err.number 0 Then sDelErr = sDelErr&Err.number& ":"&Err.description&_ vbCrLf&sFilePath&vbCrLf&vbCrLf Else sDelList = sDelList&vbCrLf&sFilePath iCnt = iCnt + 1 On If終了End If Next End Sub If sDelList = "" And sDelErr = "" Then WScript.Echo "No empty files No "&_" "" "&strPath&" "" "&" tree "WScript.Quit End If If sDelList" "then sDelList =" List of empty files of empty deleted "&vbCrLf _&String(38、"- ")&vbCrLf&sDelList&vbCrLf&_ vbCrLf&"合計: "&iCnt&"ファイルが削除されました。 " sDelErr ""の場合、sDelErr = "これらのファイルを削除できませんでした"&_ vbCrLf&String(45、 "-")&vbCrLf&sDelErr WScript.Echo sDelList&vbCrLf&vbCrLf&sDelErr 

使用法

フォルダに対してスクリプトを実行するには、次のようにwscript.exeまたはcscript.exeを使用できます。

$config[ads_text6] not found
 cscript d:\ scripts \ del-zero-byte-files.vbs "d:\ travel documents" wscript d:\ scripts \ del-zero-byte-files.vbs "d:\ travel documents" 

CScript.exeは、コンソールウィンドウへの出力を示します。 つまり、出力を表示するには、コマンドプロンプトウィンドウから実行する必要があります。

WScript.exeは、GUIに出力を表示します。

送信メニューから

SendToフォルダーにスクリプトへのショートカットを作成し、「 0バイトファイルの削除」という名前を付けることができます。 ショートカットプロパティターゲットフィールドにwscript.exeをプレフィックスしwscript.exe

次に、フォルダーツリーで空のファイルを再帰的に削除するフォルダーを右クリックし、[ 送信 ] クリックします。次に、[送信]メニューの[0バイトファイルの削除 ]をクリックします。

削除された空のファイルと合計のリスト、および削除できなかったファイルと、それぞれのエラーコードが表示されます。

関連: Windowsで空のフォルダーを自動的に削除する方法

それでおしまい!

関連記事