フォルダ構造からすべてのファイルを削除したいので、空のフォルダ構造を残します。
これは、バッチでも VBScript スクリプトでも実現できますか?
私は非常に基本的なバッチコマンドを試してみましたが、これは各ファイルの削除を許可することをユーザーに要求しました。何百ものファイルがあるので、これは適切な解決策ではありませんでした、そして、これは時間の経過とともに大いに増加するでしょう。
あなたは何を提案できますか?
これは PowerShell を使って実現できます。
Get-ChildItem -Path C:\Temp -Include *.* -File -Recurse | foreach { $_.Delete()}
このコマンドは$path
内の各子項目を取得し、それぞれに対してdeleteメソッドを実行します。これは非常に高速です。フォルダ構造はそのまま残ります。
拡張子のないファイルがある場合は、
Get-ChildItem -Path C:\Temp -Include * -File -Recurse | foreach { $_.Delete()}
代わりに。
PowerShell v2の後に-File
パラメータが追加されたようです。そうであれば、
Get-ChildItem -Path C:\Temp -Include *.* -Recurse | foreach { $_.Delete()}
拡張子を持つファイルはうまくいくはずです。
うまくいかない場合は、 あなたがPowershellの最新版を持っているか確認してください
del
コマンドでこれを行うことができます。
dir C:\folder
del /S *
/S
スイッチは再帰的にファイルだけを削除することです。
短くてスイートなPowerShell。それがどのようなPSの最低バージョンで動作するのかわからない。
Remove-Item c:\Tmp\* -Recurse -Force
あなたの最初の質問の行間を読む私はあなたが使うことができる代わりのバッチコード行を提供することができます。これが実行されたときに何ができるかは、60日以上前のファイルのみを削除することです。こうすればあなたはこれをスケジュールされたタスクに入れることができそしてそれが実行されるときそれはあなたがディレクトリ全体を吹き飛ばすよりもむしろあなたが必要としない余分なファイルを削除する。あなたが望むならあなたは60から5日または1日さえ変更することができます。これはフォルダを削除しません。
forfiles -p "c:\path\to\files" -d -60 -c "cmd /c del /f /q @path"
PowerShellを使用する
Get-ChildItem -Path c:\temp -Include * | remove-Item -recurse
単一のファイルまたはフォルダを削除するにはPowerShellを使用してください。 PowerShellでDeleteコマンドを実行する前に、削除したいオブジェクトへのフルアクセス権を持つアカウントでサーバーまたはPCにログインしていることを確認する必要があります。
例付き:http://dotnet-helpers.com/powershell-demo/how-to-delete-フォルダまたはファイルを使ったpowershell /
Remove-Item -Path "C:\ dotnet-helpers\DummyfiletoDelete.txt"
上記のコマンドは、「C:\ dotnet-helpers」の場所にある「DummyfiletoDelete.txt」ファイルを実行して削除します。
Remove-Item -Path "C:\ dotnet-helpers *。*"
Remove-Item -Path "C:\ dotnet-helpers *。*" - 再帰
-recurse
はドリルダウンしてもっとたくさんのファイルを見つけます。 –recurse
パラメータを使用すると、PowerShellは許可を求めずに子項目を削除できます。さらに、-forceパラメータを追加して、隠しファイルまたは読み取り専用ファイルを削除できます。
ファイルを強制的に削除するための-Forceコマンドの使用
Remove-Item -Path "C:\ dotnet-helpers *。*" - 強制
これがIMOの最も簡単な方法です
PowerShellを開き、ディレクトリ(cd
)、、次にに移動します。
ls -Recurse * | rm
(あの)すべてがなくなっている...
特定の拡張子に基づいて削除したい場合
ls -Recurse *.docx | rm
ls
はディレクトリをリストしています
-Recurse
は、PowerShellに任意のサブディレクトリに移動するように指示するフラグです。
*
はすべてを言います拡張子が.docの
*.doc
すべて
|
は左から右へ出力を送ります
rm
delete
他のすべての答えは、これを必要以上に混乱させるように思われます。
PowerShellを使ってこれを試してください。この例では、すべての.classファイルを削除します。
Get-ChildItem '.\FOLDERNAME' -include *.class -recurse | foreach ($_) {remove-item $_.FullName}
現在のディレクトリとサブディレクトリからすべてのファイルを削除しますが、フォルダ構造は残します。
(/Q
)スイッチは、削除してもいいかどうかをユーザーに尋ねるためのものです。
注意:貴重なものを削除していないことを確認するために/Q
なしで試してください。
del /S * /Q
Windowsエクスプローラで、すべてのファイルとフォルダを含むルートディレクトリを選択します。
検索する *
種類順に並べ替え(すべてのフォルダが一番上に、すべてのファイルがその下に表示されます)
すべてのファイルを選択して[削除]を押します。
これにより、すべてのファイルが削除され、ディレクトリ構造が維持されます。
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".