質問

次のスクリプトは、14日より古い名前付きディレクトリ内のファイルを削除し、パスとファイルを削除して.txtに書き込みます(このスクリプトは別のフォーラムにあります。 >

dir c:\tmp -recurse | where {!$_.PsIsContainer -AND $_.lastWriteTime -lt (Get-Date).AddDays(-14) } | select LastWriteTime,@{n="Path";e={convert-path $_.PSPath}} | tee c:\oldFiles.txt | Remove-Item -force -whatif

質問が3つあります:

  1. -ltとは何ですか?-leとは何ですか?-gtとは何ですか?それぞれをいつ使用しますか
  2. 上記のスクリプトはファイルを削除するだけです...どうすればフォルダも削除できますか?
  3. 上記のスクリプトはLastWriteTimeに基づいています.. CreatedDateまたはLastAccessed時間はどうですか?
役に立ちましたか?

解決

さて、次は:

  1. -lt、-le、および-gtは比較演算子です。 ltは小なり、leは小なり等しい、gtは大なりを意味します。

  2. フォルダの中身を制御できない場合、フォルダを削除すると危険になります。問題が発生する可能性があるため、データの損失に注意してください。オプションを再生するだけで、同じRemove-Itemコマンドレットを使用してフォルダーを削除できます。この記事を確認してください、それを達成するための素晴らしい指示があります: http://searchwindowsserver.techtarget.com/generic/0,295582,sid68_gci1275887 、00.html

  3. 通常、しばらくそこに座っているファイルの場合、LastWriteTimeとCreatedDateおよびLastAccessTimeは同じになります。 DLLなどの読み取り専用ファイルでは、LastAccessTimeは他の2つよりも新しい場合があります。読み取り/書き込みファイル(outlookのpstファイルなど)では、WriteTimeとAccessTimeは同じである場合があります。基本的に、それは完全にあなた次第です。 LastWriteTimeと同じように機能します。削除するファイルの性質を考慮して、先に進んでください!

他のヒント

-lt -leおよび-gtは、<!> lt;、<!> lt; =、<!> gt;ではなく比較演算子です。 <!> quot; help about_Comparison_Operators <!> quot;と入力します。 powershellコマンドプロンプトで、各タイプの詳細と、他の言語で使い慣れているものの代わりにこれらを使用する理由を確認します。

フォルダも削除するには、!$。PsIsContainer AND whereフィルタの一部を削除する必要があります。これにより、ディレクトリであるリストからすべてのアイテムが削除されます。

質問<!> quot; CreatedDateまたはLastAccessed time <!> quotについてどう思うかわかりません。ただし、LastWriteTimeと同様の方法でこれらのプロパティを単純に使用できますが、達成しようとしているロジックを決定する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top