Articles

PowerShellの基本。 Using Test-Path to Check a File Exists with Examples

Posted on

PowerShell Test-Path Cmdlet

ファイルの発見やコンテナ オブジェクトのチェックに問題がある場合、PowerShell の Test-Path を呼び出してください;「真か偽か」で応答します。 PowerShellはファイルが存在するかどうかをチェックする

  • PowerShell Test-Path -IsValid
  • PowerShell Test-Path -Exclude
  • A Test-Path Example to Make You Think
  • Test-Path -PathType
  • Classic Example: PowerShell Checks If a File Exist

    ファイルの存在を確認する簡単なスクリプトから始めましょう

    # PowerShell Check If File Exists$WantFile = "C:\Windows\explorer.exe"Test-Path $WantFile

    注1: PowerShellが返すことのできる結果は、trueかfalseだけです。

    注1: PowerShell が返せる結果は true か false だけですが、Test-Path は出力を処理するために ‘if’ 文を必要としています。 SolarWinds Wake-On-LAN Utility (無料ツール)

    使用されていないときにコンピューターをスリープさせるのは、素晴らしいアイデアです。 この無料ツールをダウンロードすることをお勧めする本当の理由は、「魔法のパケット」を送るのがとても楽しいからです。

    SolarWinds Wake-On-LAN Download 100% Free Tool

    Test-Path Environmental Variables

    物理的なファイルの場所に加えて、Test-Path を使用してレジストリや環境変数を調査することができます。

    # PowerShell Test-Path for Environmental VariablesTest-Path env:\PathExt

    課題: これらのうちどれが本当に環境変数なのでしょうか?
    Public、Private、Temp、Tump、Tmp

    PowerShell Test-Path -IsValid

    Test-Pathの過小評価されている仕事の一つは、スクリプトのパス部分が本当に存在するかどうかを検証することです。

    PowerShell Test-Path -Exclude

    ここでは、現実的な問題として、私の写真コレクションに混ざってしまった、.gif, pnp, bmp, .jpg ではないファイルがあるかどうかを確認したいと思います。 前提:私(たち)が興味を持っているファイルは、H:Sports\fun_pictures\

    注3:自分のコンピュータで動作させたい場合は、上記のファイルを大幅に編集する必要があります。 ImageFilesの値を変更し、-exclude file extensionsも微調整してください。 詳しくはPowerShell Elseでご覧ください。

    Guy Recommends: SolarWinds Engineer’s Toolset (FREE TRIAL)

    このEngineer’s Toolsetは、コンピュータの問題をトラブルシューティングするための50個のユーティリティを含む包括的なコンソールを提供します。 ガイ氏によると、ネットワーク上で発生していることを監視するのに役立ち、各ツールは基本的なシステムがどのように動作しているかについて詳しく教えてくれます。 ありがたいことに、ユーティリティはモニタリング、ネットワークディスカバリー、診断、シスコツールと論理的に表示されています。

    SolarWinds Engineer’s Toolset Download 14-day Free Trial

    A Test-Path Example To Make You Think

    注4: このスクリプトは意図的に作成しました。 現実的には意味がありません。 Exclude *.* の値を *.exe または *.dll に調整してください。

    注5: ここでは、-Pathパラメータを明示的に使用していますが、Test-Path以降の値は、その場所であるとみなされるため、-Pathはオプションです。

    注6: Test-Pathと一緒にGet-ChildItemを試してみると、この2つのコマンドレットの長所と短所が見えてくることがよくあります。

    Research The PowerShell Test-Path Cmdlet

    # Find out more about PowerShell Test-Path cmdletClear-HostGet-Help Test-Path -full

    注7: Test-PathをGet-Helpで調べると、パスをチェックするための-IsValidのような便利なパラメータを発見することができます。 また、-Includeや-excludeもあり、検索内容を絞り込むことができます。

    Test-Path -PathType

    -PathTypeパラメータの主な目的は、オブジェクトがファイルなのかフォルダなのかをチェックすることです。

    Trap: HKLM: はそのコロンを必要としますが、これはレジストリでキーまたはデータをチェックするためにも使用できます。

    HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftWindows NT\CurrentVersion\Winlogon
    問題があります。

    HKEY_LOCAL_MACHINE は問題ありませんし、Windows と NT の間のスペースも問題ありませんが、コロンがないのは問題で、
    HKEY_LOCAL_MACHINE:\SOFTWAREMicrosoft‾Windows NT‾CurrentVersion‾Winlogon

    Guy Recommends: Network Performance Monitor (FREE TRIAL)

    SolarWinds Network Performance Monitor (NPM)は、ネットワーク上で何が起こっているかを発見するのに役立ちます。 ダッシュボードは、根本的な原因が壊れたリンクなのか、欠陥のある機器なのか、またはリソースの過負荷なのかを示します。

    私が最も気に入っているのは、NPMがネットワークの問題に対するソリューションを提案する方法です。 また、個々のVMware仮想マシンの健康状態を監視する機能もあります。

    SolarWinds Network Performance Monitor Download 30-day FREE Trial

    The Rest of the Path Family

    ここでは、より多くのコマンドレットを見つけるための簡単なテクニックをご紹介します。

    # PowerShell Path Cmdlet ResearchClear-HostGet-Command -Noun Path
    Convert-Path
    Join-Path
    Resolve-Path
    Split-Path
    Test-Path

    Join-Pathの例

    ここに、特定のフォルダーをどのドライブがホストしているかを見つける美しいスクリプトがあります。

    Clear-Host$Folder = "Stuff"Get-PSDrive | Where-Object {$_.root -match ":\\" -and (Test-Path $(Join-Path $_.root $Folder))}

    注8: “Stuff “を探しているフォルダの名前に変えてください。
    例: $Folder = “Program Files”

    PowerShellの実際のタスクをもっと見る

    PowerShell Test-Path Cmdletの概要

    PowerShell Test-Pathの古典的な仕事は、ファイルが存在するかどうかをチェックすることです。 しかし、レジストリ パスをテストしたり、特定の拡張子を持つファイルを検索したりすることで、その有用性を拡張することができます。

    その他の Microsoft PowerShell チュートリアルを見る。

    – PowerShell Home – Test-ServerHealth – Test-SystemHealth – Test-Connection – Test-Path

    – PowerShell Logon Script – PowerShell add printer – PowerShell Schedule Task – Free CSVDE Tool

    – Map Network Drive – Exchange 2010 PowerShell Cmdlets – Exchange 2010 Performance Monitor

    もっと良いスクリプトの例があれば、メールで教えてください。 また、事実誤認、文法的な誤り、リンク切れなどがあれば、ご報告ください。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です