windows – フォルダとそのサブフォルダからすべてのファイルを削除する

batch-file powershell script vbscript windows

フォルダ構造から全てのファイルを削除したいので、空のフォルダ構造になってしまいました

これは、バッチでもVBScriptスクリプトでも実現できますか?

私は非常に基本的なバッチコマンドを試したことがありますが、これはユーザーが各ファイルの削除を許可する必要がありました。これは何百ものファイルがあり、これは時間の経過とともに大量に増加するので、適切な解決策ではありませんでした

何か提案できることはありますか?

  72  BobJim  2014-04-15


ベストアンサー

これは、PowerShell を使用することで実現できます

Get-ChildItem -Path C:\Temp -Include *.* -File -Recurse | foreach { $_.Delete()}

このコマンドは$pathの各子アイテムを取得し、その子アイテムに対してdeleteメソッドを実行し、非常に高速です。フォルダ構造はそのまま残されています

拡張子のないファイルを持っている可能性がある場合は、使用してください

Get-ChildItem -Path C:\Temp -Include * -File -Recurse | foreach { $_.Delete()}

instead.

どうやらPowerShell v2以降に-Fileパラメータが追加されたようです。 もしそうであれば

Get-ChildItem -Path C:\Temp -Include *.* -Recurse | foreach { $_.Delete()}

拡張子のあるファイルのトリックを行う必要があります

うまくいかない場合は、最新版の Powershell があるかどうかチェックしてください

89  MDMoore313  2014-04-15


短くてスイートなPowerShell。それが動作するPSの最低バージョンを確認していません

Remove-Item c:\Tmp\* -Recurse -Force

54  Evan Nadeau  2017-11-02


delコマンドで行うことができます

dir C:\folder
del /S *

/Sスイッチは、ファイルのみを再帰的に削除するためのものです

22  phoops  2014-04-15


Using PowerShell:

Get-ChildItem -Path c:\temp -Include * | remove-Item -recurse

5  Gregory Suvalian  2014-10-28


あなたの元の質問の行の間を読んで、私はあなたが使用することができます代替のBATCHコード行を提供することができます。これを実行すると、60日以上前のファイルのみが削除されます。この方法では、これをスケジュールされたタスクに入れて、それが実行されたときに、ディレクトリ全体を吹き飛ばすのではなく、必要のない余分なファイルを削除することができます。60日を5日に変更することもできますし、1日でも構いません。これはフォルダの削除はしません

forfiles -p "c:\path\to\files" -d -60 -c "cmd /c del /f /q @path"

4  Travis  2014-04-15


PowerShell を使用して、単一のファイルまたはフォルダを削除します。PowerShell で Delete コマンドを実行する前に、削除したいオブジェクトにフルアクセスできるアカウントでサーバーまたは PC にログインしていることを確認する必要があります

例: http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/

PowerShell の commnads を使用してファイルを削除します

Remove-Item -Path “C:D\dotnet-helpers\DummyfiletoDelete.txt”

上記コマンドは、”C:D\dotnet-helpers “内に存在する “DummyfiletoDelete.txt “ファイルを実行して削除します

PowerShell の commnads を使用してすべてのファイルを削除します

Remove-Item -Path “C:dotdotnet-helpers*.*”

PowerShell の commnads を使用して、すべてのファイルとフォルダを削除します

Remove-Item -Path “C:dotdotnet-helpers*.*”-recurse

-recurseはドリルダウンして、さらにたくさんのファイルを見つけます。–recurse パラメータを指定すると、PowerShell が許可を求めずに子アイテムを削除できるようになります。さらに、-force パラメータを追加することで、隠しファイルや読み取り専用のファイルを削除することができます

強制的にファイルを削除するには-Forceコマンドを使用します

PowerShellコマンドを使って強制的にすべてのファイルを削除します

Remove-Item -Path “C:dotdotnet-helpers*.*”-強制的に

4  thiyagu selvaraj  2018-05-10


PowerShellを使って試してみてください。この例では、すべての.classファイルを削除したいと思います

Get-ChildItem '.\FOLDERNAME' -include *.class -recurse | foreach ($_) {remove-item $_.FullName}

1  Boubakr  2014-11-20


  1. Windowsエクスプローラで、すべてのファイルとフォルダを含むルートディレクトリを選択します

  2. 検索

  3. タイプ別に並べ替え(すべてのフォルダが一番上に表示され、その下にすべてのファイルが表示されます

  4. すべてのファイルを選択し、Deleteを押します

これにより、すべてのファイルが削除され、ディレクトリ構造が保持されます

1  Emel  2015-03-16


カレントディレクトリとサブディレクトリからすべてのファイルを削除しますが、フォルダ構造は残します

(/Q) スイッチは、削除しても良いかどうかを尋ねるためのものです

注意 : 貴重なものを削除していないことを確認するために、/Qを抜きで試してみてください

del /S * /Q

1  hdoghmen  2015-05-18


これが一番簡単な方法です

PowerShellを開き、ディレクトリ(cd)に移動し、then

ls -Recurse * | rm

パッと見)すべてが消えてしまった

特定の拡張子に基づいて削除したい場合

ls -Recurse *.docx | rm

lsがディレクトリをリストアップしています

-Recurse は powershell が任意のサブディレクトリに入ることを指示するフラグです

*が全てを語っている

*.docすべて.docの拡張子で

| 出力を左から右に送ります

rm delete

他の回答を見る限り、必要以上に混乱しているように見えます

1  Kolob Canyon  2016-10-12


以下のコマンドでフォルダとそのサブフォルダ内のすべてのファイルを削除することができます

Get-ChildItem -Recurse -Path 'D:\Powershell Practice' |Where-Object{$_.GetType() -eq [System.IO.FileInfo]} |Remove-Item

Or

Get-ChildItem -Recurse -Path 'D:\Powershell Practice' -File | Remove-Item

1  Dishant Batra  2020-03-01


dir C:\testx\ -Recurse -File | rd -WhatIf
What if: Performing the operation "Remove File" on target "C:\testx\x.txt".
What if: Performing the operation "Remove File" on target "C:\testx\bla\x.txt".

0  None  2017-04-10


Powershell 5.1で


$extensions_list = Get-ChildItem -Path 'C:\folder_path\' -Recurse

foreach ( $extension in $extensions_list) {

if ($extension.Attributes -notlike "Directory") {

Remove-Item $extension.FullName
}
}

ディレクトリではないすべてのイテンを削除します

$extension.FullName = アイテムパス

$extension.Attributes = Item Type ( Directory or Archive ) となります

0  Maycon Paixão  2020-02-04


上記の回答の補足ですが、実はRemove-Itemコマンドに-Includeキーワードが含まれているので、上記の回答でGet-Childitemを使用して結果をパイプラインに渡す必要はありません

一つは簡単にできる

Remove-Item -Include “.” “C:\Temp” -Recurse

-1  Sams0nT  2018-10-14


タイトルとURLをコピーしました