2017-08-21 15 views
-4

Windowsのコマンドラインを使用して、拡張子.xmlファイル以外のフォルダ内のすべてのファイルを削除するにはどうすればよいですか。削除するファイルがない場合、終了コードは0にする必要があります。特定の拡張子を除くフォルダ内のすべてのファイルを削除する

+5

誰かにあなたのためのスクリプトを書いてほしいと思うように聞こえます。 Get-ChildItem、Where-Object、Remove-Item、いくつかのパイプ、if文、そしておそらく変数または2つが必要です。 –

答えて

1

これは簡単なGoogle検索を行うことで簡単に解決できます。 Go here and learn about -Exclude on Get-ChildItem

ここではZabuzaの指導で、この件についてもう少し詳しく説明します。上記のShawnの質問に対するコメントが指摘しているように。これは、Remove-ItemにパイプされたGet-ChildItem -Exclude * .xmlによって達成されます。

Get-ChildItem -Path <Enter your path here> -Exclude *.xml | Remove-Item 

EDIT:シンプルなカウンターがパイプラインを使用して溝を仕事と簡単なforeachループを行うだろう削除するどのファイルがない場合のトラックに:

$filesDeleted = 0 
    $filesToDelete = Get-ChildItem -Path <SomePath> -Exclude *.xml 
    foreach($file in $filesToDelete) 
    { 
     $file | Remove-Item 
     $filesDeleted ++ 
    } 

    if($filesDeleted -eq 0) 
    { 
     Write-Warning -Message "No files were found to delete." 
    } 
    else 
    { 
     Write-Verbose -Message "$filesDeleted file(s) were deleted." 
    } 

側注:この思想今日の場合は、この問題は私の脳を越えて走ったが、ファイルが削除されなかったとしても、終了していないエラーはカウンターを上げてもファイルが削除されていなくても、削除されたファイルの量に間違いがある可能性があるため、これらのインスタンスをキャッチするには、-ErrorAction Stopを実行するか、正常に削除されたことを確認するために削除された項目に対して、Test-Pathを実行するためのコードを少し追加する必要があります。

+2

このリンクは質問に答えるかもしれませんが、ここでの答えの一部と参照のためのリンクを提供します。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 17098821) – Zabuza

+2

@ Zabuza、アドバイスありがとう、より役に立つように更新されました。 – Paolis

関連する問題