PowerShellスクリプトで、2つの日付の間に変更されたファイルまたはフォルダーを検索しますか? 単純なスクリプトを作成する代わりに、これを行う関数(Get-ItemsBetweenDates)を作成しました。
このガイドの最初のセクションでは、Get-ItemsBetweenDates関数の概要を説明します。 次に、2番目と3番目のセクションで、関数の構文とパラメーターを学習します。
一方、セクション4では、Get-ItemsBetweenDatesの使用方法の例をいくつか示します。 また、PowerShellを使用して日付の間に変更されたファイルを見つけることに関する一般的な質問に答えるFAQセクションもあります。
Get-ItemsBetweenDatesの概要(日付間で変更されたファイルを検索するPowerShell関数)
SysAdminsは、あらゆる種類の要求を要求します。 SysAdminsが効率を向上させる方法の1つは、PowerShellを使用してタスクを自動化することです。
一般的な要求の1つは、特定の日に変更されたファイルまたはフォルダーを見つけることです。 指定された日付に変更されたファイルを検索することに加えて、2つの日付の間の最終変更日を持つファイルを検索する必要がある場合があります。
これがGet-ItemsBetweenDatesの出番です。
日付の間に変更されたファイルを検索するPowerShellスクリプトを作成する代わりに、Get-ItemsBetweenDatesを使用できます。 必要なのは、ファイルを検索するパスを指定することだけです。
次に、検討する日の範囲を指定します。ビンゴを実行すると、ファイルやフォルダーが作成されます。
Get-ItemsBetweenDatesの構文
Get-ItemsBetweenDatesコマンドには3つの構文があります。 どうぞ…
Get-ItemsBetweenDates [-Path] <String[]> [-NumOfDaysFrom] <Int32> [-NumOfDaysTo] <Int32> [<CommonParameters>] Get-ItemsBetweenDates [-Path] <String[]> [-NumOfDaysFrom] <Int32> [-NumOfDaysTo] <Int32> [[-Directory]] [<CommonParameters>] Get-ItemsBetweenDates [-Path] <String[]> [-NumOfDaysFrom] <Int32> [-NumOfDaysTo] <Int32> [[-File]] [<CommonParameters>]
日付の間にファイルとフォルダーを返す場合は、最初の構文でGet-ItemsBetweenDatesPowerShell関数を実行します。
ただし、ファイルだけを返す場合は、2番目の構文でコマンドを実行します。 同様に、フォルダのみを返すには、3番目の構文を使用します。
Get-ItemsBetweenDatesのパラメーター
Get-ItemsBetweenDatesには5つのパラメーターがあります。 以下の表に、すべてのパラメーターとその機能をリストしました。
Get-ItemsBetweenDatesのパラメーター | コメント/メモ |
---|---|
道 | Get-ItemsBetweenDatesがアイテムを返すフォルダーへのパスを指定します。 このパラメーターはワイルドカードを受け入れます。 詳細については、例を参照してください。 |
NumOfDaysFrom | これは、今日から変更された日付のファイルを返す最も早い日数になります。 日付ではなく、数字で指定してください。 |
NumOfDaysTo | これは、日付が変更されたファイルを返す、今日からの最新の日数になります。 以下のような NumOfDaysFrom パラメータ、数値を指定します。 NumOfDaysToはより小さくなければならないことに注意してください NumOfDaysFrom パラメータ。 |
ファイル | これはSwitchパラメータタイプです。 デフォルトでは、Get-ItemBetweenDatesはファイルとフォルダーの両方を返します。 ただし、ユーザーがこの関数でファイルのみを返すようにしたい場合は、Fileパラメーターを含めます。 |
ディレクトリ | Fileパラメーターと同様に、これもSwitchパラメータータイプです。 ユーザーがこの関数でフォルダーのみを返すようにしたい場合、ユーザーにはディレクトリが含まれます。 同じコマンドでファイルとディレクトリのパラメータを指定することはできないことに注意してください。 1つのコマンドでファイルまたはディレクトリを指定できます。 |
PowerShellを使用して、2つの日付の間に変更されたファイルまたはフォルダーを検索する(Get-ItemsBetweenDates):例
Get-ItemsBetweenDates PowerShell関数の構文とパラメーターがわかったので、関数をダウンロードしてインストールする方法を学習します。
このセクションでは、Get-ItemsBetweenDatesPowerShell関数の使用例についても説明しました。
Get-ItemsBetweenDatesPowerShell関数をダウンロードしてインストールする方法
このカスタム関数を使用する前に、ダウンロードしてインストールする必要があります。 このタスクを完了するには、以下の手順に従ってください。
- Get-ItemsBetweenDates zipファイルをダウンロードするには、[Get-ItemsBetweenDatesのダウンロード]をクリックします。 リンクをクリックすると、ブラウザはGet-ItemsBetweenDates.zipというzipファイルをダウンロードします。
- 次に、Get-ItemsBetweenDates.zipを解凍し、解凍したGet-ItemsBetweenDatesフォルダーを以下のパスに保存します。
C:Program FilesWindowsPowerShellModules
上記のパスが正しいことを確認するには、PowerShellで以下のコマンドを入力し、Enterキーを押します。
$env:ProgramFiles + "WindowsPowerShellModules"
このパスが存在しない場合は、作成する必要があります。 フルパスを作成するには、管理者としてPowerShellを開き、次のコマンドを実行します。
$ModulesFolder = $env:ProgramFiles + "WindowsPowerShellModules" New-Item -Path $ModulesFolder -ItemType Directory -Force | Out-Null
上記のパスを作成したら(存在しない場合)、解凍したフォルダーGet-ItemsBetweenDatesをパスの最後のフォルダーにコピーします…
フォルダを「ProgramFiles WindowsPowerShell Modules」にコピーしようとすると、フォルダをコピーするための管理者権限を提供するように求めるプロンプトが表示されます。 管理者権限を付与するには、をクリックします 継続する。
- Get-ItemsBetweenDatesフォルダーを「ProgramFiles WindowsPowerShell Modules」にコピーした後、以下の手順4に進みます。
- 管理者としてPowerShellを開き、次のコマンドを実行します。
Get-ItemsBetweenDatesを「ProgramFiles WindowsPowerShell Modules」にコピーする前にPowerShellが開いていた場合は、以下のコマンドを実行する前に、PowerShellを閉じて再度開く必要があります。
Import-Module Get-ItemsBetweenDates -Force
インターネットからファイルをダウンロードしたため、PowerShellは警告を表示します。 続行するには、次のように入力します R プロンプトで、キーボードのEnterキーを押します。
Get-ItemsBetweenDates PowerShell関数をダウンロードしてインストールしたので、この関数を使用して、2つの日付の間に変更されたファイル(またはフォルダー)を検索できます。
次のサブセクションでは、Get-ItemsBetweenDatesの使用方法の例をいくつか紹介しました。
以下のコマンドを実行して、PowerShell内でこれらの例を読むこともできます。
Get-Help Get-ItemsBetweenDates -Examples
Get-ItemsBetweenDatesPowerShell関数を使用して2つの日付の間に最後に変更されたファイルとフォルダーを検索する方法
このガイドの「パラメーター」セクションで述べたように、Get-ItemsBetweenDatesには ファイル そしてその ディレクトリ パラメータ。
これらのパラメーターはオプションです。つまり、指定する必要はありません。
したがって、指定しない場合 ファイル または ディレクトリ パラメータGet-ItemsBetweenDatesは、指定されたパス内のファイルとフォルダ(ディレクトリ)の両方を返します。
したがって、10日前から40日前までに変更されたすべてのファイルとフォルダーをコンピューターのパス「D: PowerShellScripts」に戻すには、次のコマンドを実行します。
Get-ItemsBetweenDates -Path "D:PowerShell Scripts*" -NumOfDaysFrom 40 -NumOfDaysTo 10
見つけ方 ファイル Get-ItemsBetweenDatesPowerShell関数を使用した2つの日付間の最終変更
最後の例では、Get-ItemsBetweenDates PowerShell関数を使用して、2つの日付の間に変更されたファイルとフォルダーを返しました。
ファイルだけを返したい場合はどうすればよいですか? 私は含めます ファイル 以下のコマンドに示すパラメータ:
Get-ItemsBetweenDates -Path "D:PowerShell Scripts*" -NumOfDaysFrom 40 -NumOfDaysTo 10 -File
コマンドの結果からわかるように、ファイルだけが返され、フォルダーは除外されました。
見つけ方 フォルダー Get-ItemsBetweenDatesPowerShell関数を使用した2つの日付間の最終変更
ファイルだけを返す最後の例とは異なり、フォルダだけを返すことにする場合があります。 以下のコマンド(Directoryパラメーターを含む)は、次のトリックを実行します。
Get-ItemsBetweenDates -Path "D:PowerShell Scripts*" -NumOfDaysFrom 40 -NumOfDaysTo 10 -Directory
コマンドはフォルダだけを返します!
PowerShellを使用して2つの日付の間に変更されたファイルまたはフォルダーを検索することに関するよくある質問
PowerShellでは、アイテムのLastWriteTimeは、アイテム(ファイルまたはフォルダー)が最後に変更された日時です。
Get-ChildItemコマンドを実行すると、LastWriteTimeと呼ばれるプロパティが返されます。 このプロパティは、ファイルが最後に変更されたときの情報を保持します。
以下のコマンドを実行して、パス「D:PowerShellScripts」内のすべてのファイルの名前と最終更新日を返します。
Get-ChildItem -Path“ D: PowerShell Scripts *” -File | Select-オブジェクト名、LastWriteTime
ファイルまたはフォルダーのLastWriteTimeを取得するには、Get-ChildItemを実行します。 次に、出力をにパイプします Select-Object コマンドレットとreturnLastWriteTime。
次のコマンドは、パス「D:PowerShellスクリプト」内のすべてのファイルとフォルダーのLastWriteTimeを返します。
Get-ChildItem -Path“ D: PowerShell Scripts *” | Select-Object LastWriteTime
PowerShellには、オブジェクトのフィルター処理に使用できる多数のコマンドレットがあります。 これらのコマンドレットには、Where-Object、Select-Object、およびSelect-Stringがあります。
その他は、ForEach-ObjectとOut-GridViewです。 これらのコマンドレットに加えて、フィルタリングパラメータを含むコマンドレットがあります。
たとえば、Get-ChildItemコマンドレットにはFileパラメーターとDirectoryパラメーターがあります。 これらのパラメーターを使用して、それぞれファイルのみまたはフォルダーのみを返すことができます。
前にリストした「フィルター」コマンドレットに関しては、それらを個別に使用することも、組み合わせてオブジェクトをフィルター処理することもできます。 たとえば、Get-ChildItemコマンドレットの出力をWhere-Objectにパイプ(|)できます。
次に、Where-Objectを使用して、返す必要のある出力をフィルタリングします。 最後に、Where-Objectの出力をSelect-Objectにパイプすることを決定できます。
Select-Objectコマンドレットを使用すると、最終結果で返すGet-ChildItemのプロパティを決定できます。
を含むコマンドレット 再帰 パラメータは、このパラメータを使用して、指定されたディレクトリとそのすべてのサブディレクトリのデータを処理するようにPowerShellに指示します。
サポートするすべてのコマンドレットを一覧表示するには 再帰 パラメータを指定して、次のPowerShellコマンドを実行します。
Get-Command -ParameterName Recurse
PowerShellを使用して2つの日付の間に変更されたファイルまたはフォルダーを検索することについての私の最終的な考え
Get-Date、Get-ChildItem、Where-Object、およびSelect-Object PowerShellコマンドレットを使用して、日付の間に変更されたファイルを検索できます。 ただし、これを実現するためのコマンドはかなり複雑です。
また、これらのコマンドを使用して日付間で変更されたファイルを検索する場合は、コマンドを実行するたびに、手動でGet-Dateを使用して、ファイルまたはフォルダーを返す日の日付バージョンを取得する必要があります。
それをすべて行う代わりに、Get-ItemsBetweenDatesPowerShell関数を作成しました。 この関数を使用して、3つのパラメーターを指定すると、PowerShellは、指定された日の間に変更された目的のファイルとフォルダーを返します。
この関数を作成することで、大きな問題を解決できたと思います。 もしそうなら、あなたの経験をで共有するために親切に約2分を割いてください Itechguidesコミュニティフォーラム。
また、Get-ItemsBetweenDates関数について質問がある場合、または関数が特定のニーズを満たしていない場合は、この記事のトピックに返信することもできます。 Itechguidesコミュニティフォーラム。 私は忙しいですが、Itechguidesコミュニティフォーラムに投稿されたすべてのPowerShellの質問に答える時間があります。
最後に、その他のカスタムPowerShell関数については、PowerShellスクリプトリポジトリページにアクセスしてください。
参考文献と参考文献
次のPowerShellコマンドレットを使用して、Get-ItemsBetweenDatesPowerShell関数を作成しました。 各コマンドレットの詳細については、リンクをクリックしてください。
The post PowerShellは日付間で変更されたファイルを検索します appeared first on Gamingsym Japan.