で既存のファイルを確認して削除する方法

ファイルの種類に関係なく特定のアイテムを削除しようとしている場合は、まずそのアイテムが存在するかどうかを確認する必要があります。そうしないと、予期しないエラーが発生する可能性があります。

ファイルの確認と削除は Windows GUI を使用して比較的簡単に行うことができますが、1 つのファイルを削除するためだけに複数のウィンドウに移動する必要があります。一方、Powershell では、シンプルで短いコマンドを使用して同じタスクを実行できます。

Remove-Item コマンドレットを使用して、特定のファイルを削除することができます。指定されたパス。ただし、削除しようとしているアイテムが存在するかどうかを確認するための複数のコマンドと多数の方法があります。

同様に、この記事ではさまざまなコマンドと便利なテクニックを紹介します。

Powershell で既存のファイルを確認して削除する方法

Windows Powershell は、ユーザーがスクリプト言語を使用してタスクを自動化できるターミナルです。したがって、このユーティリティを使用したファイルの作成、読み取り、更新、または削除は、理解しやすく実装も簡単です。

おそらく、ファイルが Bash、コマンド プロンプト、および Windows GUI に存在するかどうかを確認しようとしました。さて、このセクションでは、Powershell で実行し、必要に応じて削除するためのさまざまなコマンドを学習します。

Test-Path の使用

Test-Path は、指定されたパス/アドレスが存在します。基本的に、Powershell でこのコマンドレットを実行すると、ブール式が出力されます。ここで、True はアクセスしようとしているファイルが存在することを示し、False は存在しないことを示します。 Test-Path の構文は次のとおりです。
Test-Path

たとえば、Documents ディレクトリ内に「text.txt」というファイルが存在するかどうかを確認して削除するには、次のようにします。できること:

Powershell ウィンドウで、次のコマンドをコピーして貼り付けます:
Test-Path Documents\text.txtここで Enter キーを押します。値が存在する場合は「True」が表示されます。

そうでなければ、値を取得します’以下のように「False」。”>存在する場合は、以下のコマンドを使用してファイルを削除できます:
Remove-Item Documents\text.txt

ただし、存在しない場合、次のようなエラー メッセージが表示されます。

ブール式を好まない場合は、if および else ステートメントを使用して実際のメッセージを生成できます。また、次の単純なコードを記述すると、複数のコマンドを実行しなくても既存のファイルを削除できます:

$MyFile=”Documents\text.txt”
if (Test-Path $MyFile) {
Remove-Item $MyFile
Write-Host”ファイルが見つかり、正常に削除されました。”
}
else
{
Write-Host”探しているファイルはありません’t exist.”
}

上記のコードでは、基本的に変数 MyFile によって場所を表しています。ここで、if (Test-Path $MyFile) はパスが存在するかどうかを判断します


これを確実にするために、Test-Path Documents\text.txt を再度使用すると、False 出力が得られるはずです。

使用Get-Item

Get-Item の使用は、Test-Path を使用するのと同じくらい簡単です。ただし、このコマンドレットは、ブール式を使用してファイルが存在するかどうかを判断しません。代わりに、ファイルのモード、最終書き込み時間、長さ、名前、およびそのタイプを出力します。以下に Get-Item の構文を示します。
Get-Item

Get-Item コマンドレットを使用して既存のファイルを特定して削除する方法については、以下の手順に従ってください。デモンストレーションの目的で、ドキュメント ディレクトリから画像ファイル「image.bmp」を削除します。

Powershell を起動した後、次のコマンドを貼り付けます。
Get-Item Documents\image.bmpHit Enter キーを押します。ファイルが存在する場合、ファイルの詳細を取得します。

それ以外、パスが見つかりませんというエラーが発生します。
ファイルが存在する場合は、次のコマンドを使用してディレクトリから削除します:
Remove-Item Documents\image.bmp

しかし、ファイルが存在せず、削除しようとすると、再度パスが見つからないというエラーが発生します。

以下のプログラムも使用できますGet-Item を使用して Powershell の既存のファイルを確認して削除するには:

$MyFile=”Documents\image.bmp”if(Get-Item $MyFile-ErrorAction Ignore) { Remove-Item $MyFile Write-Host”ファイルが見つかり、正常に削除されました。”} else { Write-Host”検索しているファイルが存在しないため、削除できません。”}

上記のスクリプトでは、最初にi のパスを格納する変数 MyFile mage.bmp ファイル。次に、if 条件を Get-Item $MyFile-ErrorAction Ignore として設定します。ここで、Get-Item $MyFile は場所からアイテムを取得します。ファイルがそうでない場合、–ErrorAction Ignore はエラーを破棄します’


そうしないと、「検索しているファイルが存在しないため、削除できません。」というメッセージが表示されます。

注: Get-ChildItem コマンドレットを使用することもできます

[System.IO.File]::Exists の使用

System.IO は、ファイルの読み取りと書き込みを処理します。.NET Framework クラス ライブラリ. 名前空間を使用すると、すばやくファイルが存在するかどうかを判断します。その後、Remove-Item コマンドレットを使用して削除することもできます。

Test-Path と同様に、[System.IO.File]::Exists コマンドも ブール式 をスローして、ファイルが存在するかどうかを判断します。 [System.IO.File]::Exists コマンドレットの構文は次のとおりです。
[System.IO.File]::Exists(““)

デモのために、ドキュメント ディレクトリに MS Word ファイル’word.docx’が存在し、このアイテムを削除します:

Powershell ウィンドウで 以下のコマンドレットを実行:
[System.IO.File]::Exists(“Documents\word.docx”)ファイルが存在する場合、Powershell は True を返します。

それ以外の場合、出力は False になります。
探しているファイルが存在する場合は、次の co mmand で削除:
Remove-Item Documents\word.docx

存在しないファイルを削除しようとすると、Powershell はパスが見つからないというエラーをトリガーします。

さらに、[System.IO.File]::Exists コマンドレットを採用した以下のプログラムを試して、Windows Powershell 上の既存のファイルを削除することもできます:

$MyFile=”Documents\word.docx”if([System.IO.File]::Exists($MyFile)) { Remove-Item $MyFile Write-Host”Tファイルが見つかり、正常に削除されました。 MS Word ファイルのパスを格納します。 [System.IO.File]::Exists($MyFile) を使用して、アイテムが存在するかどうかを確認します。


同様に、次のメッセージが表示されます。検索対象が存在せず、削除できません。”パスが正しく設定されていない場合。

Powershell で複数の既存ファイルを削除する方法

時々 、フォルダーまたはディレクトリから複数のファイルを削除する場合があります。そのような場合、Windows Powershell には、すべてまたは選択したファイルを完全に削除する機能が用意されています。

注意: アイテムごみ箱に移動しません. 基本的に、アクションは同等です

このセクションでは、Powershell プログラムで既存の複数のファイルを確認して削除する簡単で効果的な方法について説明します。

特定のフォルダーのすべてのファイル

ファイルの種類や拡張子に関係なく、特定のフォルダーからすべてのファイルを削除する場合は、次の適切なコマンドを使用できます。
Remove-Item \*.*

たとえば、Example フォルダー内のファイルを確認して、その中のすべてのファイルを削除してみましょう。方法は次のとおりです:

まず、次のコマンドを使用して、Example フォルダー内のファイルを確認します:
Get-ChildItem C:\Users\Bhishu\Desktop\Example
これで実行できますこれらのファイルをすべて削除する以下のコード:
Remove-Item C:\Users\Bhishu\Desktop\Example\*.*
すべてのファイルが削除されたことを確認するには、Get-ChildItem コマンドレットをもう一度使用します。何も表示されません。

隠しファイルまたは読み取り専用ファイル


したがって、-Force を使用する必要がありますそれらを強制的に削除するパラメータ:
Remove-Item -Force

これでエラーは発生しなくなりました。実際、Test-Path コマンドを使用して、隠しファイルが同じ場所に存在するかどうかを確認することで、これを検証できます。

同じ種類のすべてのファイル

存在する場合特定のフォルダからすべてのファイルを削除するのではなく、同じファイル タイプを持つアイテムのみを削除したい場合は、次の構文を使用します:
Remove-Item <パス>*[ファイル タイプ]

たとえば、拡張子が.docx のすべてのファイルを Example フォルダーから削除するには、次の手順に従ってください:

まず、次のスクリプトを実行して、フォルダーに存在するファイルを確認します。:
Get-Item C:\Users\bishu\Desktop\Example\*.*

ここで、*.* は拡張子に関係なくすべてのファイルを表示します。同じタイプのファイルを削除するには、ジョブを実行する次のコマンドを使用します:
Remove-Item C:\Users\bishu\Desktop\Example\*.docx
基本的に、*.docx が役立ちます拡張子が.docx のファイルをすべて削除します。同様に、任意のファイル タイプ (.bmp、.txt、.jpeg) に置き換えることができます。これにより、対応する拡張子を持つファイルのみが削除されます。最後に、Get-Item コマンドを再度使用して、例のフォルダ。実際、すべての.docx ファイルが削除されていることに気付くでしょう。

Categories: IT Info