PowerShell ファイルを探して フォルダーを開く find

PowerShell find ファイルを探す

WindowsExcelなど 保存したファイルが見つからない場合、

PowerShellコマンドを使い ファイル名で 探すことができます。

macOSの find コマンドのように 使えます。

PowerShell ファイルを探す

下↓の コマンドは Book1を 探す コマンドです。

Get-ChildItem -File -Recurse -name  -Include Book1.*

Get-ChildItem 実行例

PowerShellで、 探しているファイルの フォルダーを開く

上↑の Get-ChildItem コマンドを使って、 探したファイルがあるフォルダーを開くコマンドです。

Invoke-Item (Get-ChildItem -File -Recurse -Path ./  -Include Book1.*).Directory

Invoke-Item を使うと ファイルを実行させることが できます。

上記コマンドの場合、 Directoryを指定しているのでエクスプローラーのフォルダが開きます。

FullNameに変更すると ファイルそのものが実行されます。 例の場合Excelが開きます。

Windows 11 PowerShell バージョンアップ | 確認

PowerShell 7 $PSVersionTable.PSVersion

Windows 11 で入っていた PowerShellのバージョンを確認する

$PSVersionTable.PSVersion
PowerShell バージョン確認

初期にインストールされている PowerShellバージョンは 5.1でした。

PowerShell の最新版をインストールする

https://github.com/PowerShell/PowerShell

↑上のURLに インストーラーファイル(msi)が ダウンロードできる

PowerShell 7 にアップデート

バージョン5と7は 別々で動くようです。

PowerShellの実行ファイルが macOS版と共通になって pwshでPowerShell 7が起動します。

PowerShell 7は pwshで起動できる

PowerShell 〇時〇分まで whileループ

PowerShell 〇時〇分まで whileループ

下記コードは、 PowerShell を使ったシンプルなループ例です。

while ($true)
    Get-Date
    Start-Sleep -Seconds(1) #1秒スリープ
}

このコードは、 現在時刻を出して 1秒間スリープを永遠繰り返します。このコードを少し変更して○時○分までwhileループし 超えれば終了するようにします。

$terminateDate = (Get-Date).AddSeconds(60) #今から60秒後
Write-Host ([String]::Format("終了時刻 = {0}",$terminateDate))
while ((Get-Date) -lt $terminateDate){ 
    Get-Date
    Start-Sleep -Seconds(1) #1秒スリープ
}

上↑のコードは、 現在日時が 変数 $terminateDate を超えたら whileループから抜けます。