もっと詳しく

Windows PowerShellでファイルを1行ずつ読み取るには、次を使用します。 Get-Content アイテムの内容を読むには、 スイッチ 正規表現を含むステートメント、または.NETライブラリクラスを使用する [System.IO.File]

ファイルで作業している間、ファイルを1行ずつ読み取り、さらに処理を行うためにその行を変数に格納する必要があります。 これは、WindowsPowerShellコマンドを使用して簡単に実行できます。

この記事では、Get-Contentまたは.netライブラリクラスを使用してWindowsPowerShellでファイルを1行ずつ読み取る方法について説明します。

を使用してファイルを1行ずつ読み取ります [System.IO.File]

.Netライブラリには [System.IO.File] メソッドを持つクラス ReadLines() これは、ファイルパスを入力として受け取り、ファイルを1行ずつ読み取ります。

foreach($line in [System.IO.File]::ReadLines("D:LogTestFTP-02Environement-Variable.txt"))
{
    Write-Output $line
}

上記のPowerShellスクリプトでは、ReadLine()関数がファイルを読み取り、foreachループを使用してファイルを1行ずつ読み取り、さらに処理のためにファイルを渡します。

上記のPowerShellスクリプトの出力は、ファイルの内容全体を1行ずつ読み取り、次のように端末に出力します。

What is an environment variable in Windows? How to print environment variables in PowerShell? 
The Environment variables stores information about operating system environment information and programs.
 
This information details include the operating system path, location of the windows installation directory, and a number of p
rocesses used by the operating system. 
PowerShell can access and manage or change environment variables.

The Environment variable in Windows operating system stores that is used by programs. 
Using PowerShell, we can print environment variables on the console.

クールなヒント: PowerShellを使用してファイル名の一部の名前を変更する方法!

Get-Contentを使用してファイルを1行ずつ読み取る

PowerShellのGet-Contentコマンドレットは、指定されたアイテムのコンテンツを読み取るために使用されます。

Get-Contentコマンドを使用すると、ファイルパスを指定してファイルの内容を読み取り、PowerShellのループを使用して、ファイルから行を取得してさらに処理することができます。

$regex = ''

foreach($line in Get-Content -Path D:LogTestFTP-02Environement-Variable.txt) 
{
    if($line -match $regex)
    {
        Write-Output $line
    }
}

上記のPowerShellスクリプトでは、$ regex変数に、ファイルから特定の行を取得するための正規表現が含まれています。 この例では、正規表現の値を「」として使用します。

使用 foreach loop PowerShellで、Get-Contentコマンドを使用して読み取られたファイルコンテンツを反復処理し、$line変数に格納します。 ファイルを1行ずつ読み取り、さらに処理するためにifステートメントに渡します。

PowerShellのifステートメントを使用して、正規表現を含む行を確認し、正規表現がその行と一致する場合は、その行を出力します。

Get-Contentコマンドを使用してファイルを1行ずつ読み取る上記のPowerShellの出力は次のとおりです。

クールなヒント: PowerShellを使用してファイルの特定の行を取得する方法!

ファイルから特定の行を読み取る場合は、カスタム正規表現値を指定します。 たとえば、「The」で始まるファイルから行を取得する場合は、次のコマンドを実行します。

$regex = '^The'

foreach($line in Get-Content -Path D:LogTestFTP-02Environement-Variable.txt) 
{
    if($line -match $regex)
    {
        Write-Output $line
    }
}

上記のPowerShellスクリプトでは、正規表現の値を「^The」として指定しています。

PowerShellのforeachループを使用して、ファイルを1行ずつ読み取り、その行をifステートメントに渡して正規表現と照合します。

正規表現がファイルの内容と一致する場合、この場合、行は「The」で始まる必要があり、trueと評価され、行が出力されます。

上記のPowerShellスクリプトの出力は、ファイルを読み取り、指定された正規表現に従って一致する行を出力します。

The Environment variables stores information about operating system environment information and programs.
The Environment variable in Windows operating system stores that is used by programs. 

クールなヒント: PowerShellを使用してファイル内の行をカウントする方法!

Switchを使用してファイルを1行ずつ読み取る

スイッチ PowerShellのステートメントには、正規表現とファイルのパラメーターがあります。 Fileパラメーターを使用すると、読み取り用のファイル名を指定でき、Regexは値と条件の正規表現マッチングを実行します。

$regex = '^The'

switch -regex -File Environement-Variable.txt{ 
  $regex { "$_" } 
}  

上記のPowerShellスクリプトでは、Environment-Variable.txtファイルがコンピューターシステムに保存されています。 カスタム正規表現値を「The」として指定しました。

を使用して switchステートメント PowerShellでは、Fileパラメーターを使用してファイルコンテンツを1行ずつ読み取り、regexパラメーターを使用して行の値を「The」で始まる条件に一致させます。

正規表現条件がtrueと評価された場合、次のように行が出力されます。

The Environment variables stores information about operating system environment information and programs.
The Environment variable in Windows operating system stores that is used by programs. 

クールなヒント: PowerShellを使用してファイルの最後の行を取得する方法!

結論

PowerShellでファイルを1行ずつ読み取る方法に関する上記の記事がお役に立てば幸いです。

PowerShellのGet-Contentコマンドレットはコンテンツを一度に読み取ります。ファイルサイズが大きいと、問題が発生したり、フリーズしたり応答しなくなったりする可能性があります。 上記の3つの異なる方法のいずれかを使用して、ファイルの内容を読み取ることを検討できます。

PowerShell Active DirectoryコマンドとPowerShellの基本に関するその他のトピックは、ShellGeekホームページにあります。

The post PowerShellでファイルを1行ずつ読み取る appeared first on Gamingsym Japan.