PowerShellを使用してテキストファイルに書き込む方法

2021年6月3日 102357 ビュー

このSゾーンでは、PowerShellを使用してファイルに書き込むさまざまな方法を説明しています。





このガイドは、ファイルへの出力の書き込みに使用されるさまざまなPowerShellコマンドレットについて説明することから始まります。セクションカバー アウトファイル 、Add-Content、およびSet-Contentコマンドレットと例。



rom note 4tモバイル

次に、2番目のセクションでは、さまざまなPowerShellの使用方法を学習します メソッド テキストファイルへの書き込みと更新を操作します。

最後に、最後のセクションでは、PowerShellでテキストファイルに出力を書き込むためのすべての可能な例について説明します。例は、テキストファイルの上書きなどの単純な例から、ファイルエンコーディングの操作などの高度な例まで多岐にわたります。



特定の例を探している場合は、下の[投稿トピックの参照]を展開して、トピックをクリックしてください。



このガイドには、PowerShellを使用して出力をテキストファイルに書き込む際のよくある質問に対する簡単な回答が記載されたFAQセクションがあります。

投稿トピックを閲覧する

テキストファイルの書き込みまたは更新に使用されるPowerShellコマンドレット

テキストファイルを作成または更新するためのPowerShellコマンドレット

このセクションでは、テキストファイルの書き込み、更新、または置換に使用される4つのPowerShellコマンドレットを紹介します。このセクションの各サブセクションでは、使用方法を学習します アウトファイル 、 追加コンテンツ 、 と セットコンテンツ 。



PowerShell出力をテキストファイルに書き込む方法 アウトファイル

テキストファイルへの出力の書き込みは、最初のコマンドの出力をにパイプするのと同じくらい簡単です。 アウトファイル テキストファイルへのパスを指定します。



最初の例では、PowerShellプロンプトにテキストを入力し、それをにパイプします アウトファイル 。

'This will be written to the text file' | Out-File -FilePath E:
eportsfirst-file.txt
ファイルが存在しない場合、Out-Fileは指定されたパスにファイルを作成します。 ファイルパス パラメータ。

コマンドが実行され、PowerShellプロンプトに戻ります。

PowerShellでOut-Fileを使用してファイルに書き込みまたは追加する方法

指定されたパスで作成されたファイルは次のとおりです。 2番目の画像は、テキストファイルの内容です。

PowerShellでOut-Fileを使用してファイルに書き込みまたは追加する方法

このメソッドを使用して、PowerShellコマンドの出力をテキストファイルに書き込むことができます。

この2番目の例では、Get-Processの出力をテキストファイルに書き込みます。コマンドは次のとおりです。

Get-Process | Out-File -FilePath E:
eportsprocesses.txt

このコマンドは、processes.txtファイルを実行して作成します。出力は、以下の2番目の画像に示されています。

PowerShell出力を既存のテキストファイルに追加する方法 アウトファイル

PowerShellを使用してファイルに書き込む別の方法は、既存のテキストファイルにコンテンツを追加(コンテンツを追加)することです。

最初の例に続いて、以下のコマンドは、パイプライン(|)の前の情報をファイルの下部にあるfirst-file.txtに追加(追加)します。

'This will be appended beneath the first line' | Out-File -FilePath E:
eportsfirst-file.txt -Append

これで、ファイルに2行目が追加され、「This」というテキストが最初の行の下に追加されます。下の画像を参照してください。

使い方 追加コンテンツ PowerShellでテキストファイルに追加するには

PowerShellを使用して、既存のテキストファイルに追加してファイルに書き込むこともできます。 追加コンテンツ コマンドレット。

追加するにはこれは、2行目の下にある既存のファイルfirst-file.txtに追加されます。このコマンドを入力して、Enterキーを押します。

Add-Content -Path E:
eportsfirst-file.txt -Value 'This will be appended beneath the second line'

これで、ファイルには3行目にテキストが追加されます。これは2行目の下に追加されます。下の画像を参照してください。

最後の例では、の出力を追加(書き込み)します Get-Process で作成されたprocesses.txtへのコマンドレット アウトファイル 例。

この例では、以下のコマンドを実行します。

$Process = Get-Process
Add-Content -Path E:
eportsprocesses.txt -Value $Process

最初のコマンドは、の出力を保存します Get-Process の中に プロセス 変数。 2番目のコマンドは、変数からの出力をprocesses.txtファイルに追加します。

このSゾーンでカバーされている方法の1つを使用して、PowerShellでファイルに書き込む(または既存のファイルに追加する)ことができます。

使い方 セットコンテンツ PowerShellでテキストファイルに書き込むには

これまでのところ、このセクションでは、使用方法を説明しました アウトファイル テキストファイルに書き込みます。また、同じコマンドレットを使用してテキストファイルに追加する方法も説明しました。

最後に、最後のサブセクションで、使用方法を示しました 追加コンテンツ 出力をテキストファイルに追加します。

このサブセクションでは、 セットコンテンツ 。このコマンドレットとすでに説明した他の2つのコマンドレットの違いの1つは、 アウトファイル と 追加コンテンツ テキストファイルにコンテンツを追加できます。 セットコンテンツ コンテンツを上書きします。

したがって、以下のコマンドは、ファイルのコンテンツを、で指定された新しいコンテンツで上書きします。 価値 パラメータ。

Set-Content -Path E:
eportsfirst-file.txt -Value 'This will overwrite everthing in this text file'

これがテキストファイルです–以前のコンテンツはすべて置き換えられました!

PowerShellテキストファイル メソッド テキストファイルの書き込みまたは更新に使用

PowerShellテキストファイルメソッドを使用してテキストファイルに書き込む方法

このガイドの最初のセクションでは、テキストファイルに出力を書き込むために使用されるさまざまなPowerShellコマンドレットについて説明しました。このセクションでは、PowerShellテキストファイルを使用して同じタスクを実行する方法を学習します メソッド 。

このセクションは、利用可能なテキストファイルを見つける方法を教えることから始まります メソッド 。次に、後続のサブセクションで、これらのPowerShellの使用方法を学習します メソッド コンテンツテキストファイルを書き込み、更新、上書きします。

以下のスクリーンショットのテキストファイルを使用して、PowerShellを見つける方法を説明します メソッド でテキストファイルをリストするときに利用可能 Get-Content コマンドレット。さらに、このセクションのすべてのサブセクションの例にこのテキストファイルを使用します。

PowerShellテキストファイルメソッドを見つける方法

すべてのリストを表示するには メソッド と 演算子 テキストファイルで利用可能で、出力をパイプします Get-Content にコマンド Get-Member 。

これがサンプルコマンドです…。

Get-Content E:
eportsfirst-file.txt | Get-Member | Where-Object {$_.MemberType -eq 'Method'}

このコマンドは、一連のPowerShellを一覧表示します メソッド 。ただし、このガイドの目的のために、私は次のことに興味があります メソッド :

  • 入れる
  • 削除する
  • 交換

さらに、私も使用します の指標 私のイラストの方法。私はこれらを強調しました メソッド 最後のコマンドの結果で…

次のサブセクションでは、これらのPowerShellの使用方法を学習します メソッド でテキストファイルをリストするときに利用可能 Get-Content コマンドレット。

PowerShellの使用方法 入れる 既存のテキストファイルに文字列を追加する方法

PowerShellの一般的な構文 入れる 方法は…

Insert(int startIndex, string value)

The startindex は、前にテキストを挿入するサブ文字列の最初の文字です。さらに、 文字列値 挿入するテキストです。

を決定する1つの簡単な方法 startIndex を計算することです の指標 テキストを挿入する文字列の値。

私が言っていることのほとんどはあなたにとってギリシャ語のように聞こえるかもしれません!それでは、テキストファイルの例を使って説明しましょう。

まず、ファイルへのパスを変数に保存します。これにより、更新したコンテンツを後で簡単に保存できるようになります。

$FilePath = 'E:
eportsfirst-file.txt'

次に、 Get-Content テキストファイルの内容を一覧表示するコマンド。次に、結果を別の変数に保存します…

$FileContent = Get-Content $FilePath

次の手順に進む前に、PowerShellの構文を元に戻しましょう 入れる 方法…

Insert(int startIndex, string value)

前に示唆したように、 startIndex –テキストを挿入するテキストファイル内の位置–を使用する の指標 方法 。

この例では、上書きする前ではなく単語を挿入したい…

PowerShellの挿入メソッドを使用して既存のテキストファイルにテキストを追加する方法

最初のステップは、 の指標 上書きの値。以下のコマンドは仕事をします…

$FileContent.IndexOf('overwrite')

結果は10です。

これを覚えておいてください の指標 の 10 単語の最初の文字の先頭に正確にあり、上書きします。

これを念頭に置いて、文字列(テキスト、数字、文字など)を挿入する場合は、上書きする前に、10を使用します。 startIndex 。

さらに、文字列の最後に何かを挿入したい場合は、上書きします。最初の文字(この場合はo)から文字列の最後までの文字数を数えます。上書きします。これは18文字になります。

スペースも文字としてカウントされることに注意してください。

しかし、この例の目的のために、上書きする前ではなく単語を挿入したいと思います…

PowerShellの挿入メソッドを使用して既存のテキストファイルにテキストを追加する方法

これは、この魔法を実行するコマンドです…

$FileContent.Insert(10,'not ')
notとoverwriteの間にスペースを作成しないように、後にスペースを追加しました。

コマンドでは、 10 それは startIndex 、 いいえ は 文字列値 。このコマンドは、以下のInsertメソッドの構文に従います…

Insert(int startIndex, string value)

これがPowerShellの最後のコマンドの結果です。結果には、挿入した単語が含まれます。

単収縮サイトがロードされていません

しかし、まだ終わっていません。最後のステップは、この値を同じテキストファイルに書き込むことです。

これを行うには、を使用する必要があります セットコンテンツ 指図。思い出してください。前のセクションで、そのセクションで説明した他の2つのコマンドレットとは異なり、 セットコンテンツ テキストファイルの内容を上書きします。

したがって、最後のPowerShellコマンドの出力を同じテキストファイルに書き込むには、次のコマンドを実行します…

$FileContent.Insert(10,'not ') | Set-Content $FilePath

この最後のコマンドを実行してテキストファイルを開くと、notという単語がテキストファイルの文字列の一部になります。

PowerShellの挿入メソッドを使用して既存のテキストファイルにテキストを追加する方法

PowerShellの使用方法 削除する 既存のテキストファイルの文字列を削除する方法

このセクションを紹介したときに、PowerShellを使用して例を示すと述べました 削除する 方法。このサブセクションでは、このPowerShellメソッドを使用してテキストファイルから文字列を削除する方法を学習します。

の構文から始めましょう 削除する 方法:

Remove(int startIndex)
Remove(int startIndex, int count)

最初の構文では、単に startIndex 。さらに、2番目の構文では、 startIndex そしてその カウント 。

前のサブセクションで説明したように、 startIndex を計算することによって の指標 削除する構文の

さらに、2番目の構文では、 カウント 文字数です–から startIndex –削除したい。

したがって、最後のサブセクションのテキストファイルに追加されていない文字列を削除したいとします。最初のステップは、 の指標 文字列の最初の文字のではなく。

前のサブセクションの例から続けて、以下の3番目のコマンドは の指標 価値:

$File = 'E:
eportsfirst-file.txt' $FileContent = Get-Content $File $FileContent.  IndexOf  ('not')

結果は10…

PowerShellのRemoveメソッドを使用して既存のテキストファイルの文字列を削除する方法

次に、文字列を削除するのではなく、次の2番目の構文を使用します。 削除する 方法。

Remove(int startIndex, int count)

私の例では、 startIndex は10です。先ほど、 カウント 文字数です–から startIndex –削除したい。

したがって、文字列を削除するのではなく、文字列を削除します–これは3文字です startIndex 。したがって、 カウント は3です。

これらの情報に基づいて、以下のコマンドはテキストファイルからではなく文字列を削除します。

$FileContent.Remove(10,3)

結果は次のとおりです…

結果をよく見ると、willとoverwriteの間に2つのスペースがあることがわかります。スペースの1つを削除するには、 カウント 4…

$FileContent.Remove(10,4)

これでスペースがなくなりました!

PowerShellのRemoveメソッドを使用して既存のテキストファイルの文字列を削除する方法

最後に、以下のPowerShellコマンドを使用して、更新されたテキストをファイルに書き込みます…

$FileContent.Remove(10,4) | Set-Content $FilePath

コマンドを実行した後、ファイルは文字列なしで更新されます。以下のスクリーンショットを参照してください…

PowerShellの使用方法 交換 テキストファイルの文字列を置き換える方法

このセクションの最後の2つのサブセクションでは、 入れる と 削除する テキストファイルに書き込むPowerShellメソッド。

この最後のサブセクションでは、文字列を別の文字列に置き換える方法を学習します。いつものように、の構文から始めましょう 交換 方法:

Replace(string oldValue, string newValue)

決定する必要がある他の2つの方法とは異なり startindex 、 また カウント 、 交換 メソッドはしません。文字列を置き換える必要があるのは、置き換える文字列を指定してから、新しい文字列を指定することだけです。

例を挙げて説明するために、テキストファイルに戻りましょう。この例では、文字列を置き換え、上書きで上書きします…

以下の3番目のコマンドがその役割を果たします。最初の2つのコマンドを再度導入したので、変数で更新されたバージョンのテキストファイルを取得できます。

さらに、最後のPowerShellコマンドは、更新された出力を同じテキストファイルに書き込みます…

$File = 'E:
eportsfirst-file.txt' $FileContent = Get-Content $File $FileContent.Replace('overwrite','write over') $FileContent.Replace('overwrite','write over') | Set-Content $FilePath

コマンドを実行すると、テキストファイルが更新されます。以下のスクリーンショットを参照してください…

PowerShellリダイレクト演算子を使用してテキストファイルに追加する方法

Windows PowerShellには、次のセットがあります。 リダイレクト演算子 。これらのリダイレクト演算子のうち2つを使用して、PowerShellでテキストファイルに書き込んだり、テキストファイルを更新したりできます。

PowerShellメソッドを使用したテキストファイルへの書き込みについては、リダイレクト演算子がこのセクションに当てはまらないことを認識しています。ただし、これは私がこのトピックを含めることができる唯一の論理的なセクションです。

新しいテキストファイルを作成して書き込むには、>リダイレクト演算子を使用します。この演算子を使用してPowerShellストリームをテキストファイルに書き込むと、テキストファイルの内容が上書きされます。

ただし、コンテンツを上書きせずにテキストファイルを更新する場合は、>>リダイレクト演算子を使用します。

これらの演算子がどのように機能するかを説明するには、次のコマンドを実行します。

'redirect' > E:
eportsRedirectExample.txt
'redirect line 2' >> E:
eportsRedirectExample.txt

最初のコマンドは、テキストファイルを作成します。 E: reports RedirectExample.txt 。次に、リダイレクトをテキストファイルに書き込みます。

さらに、2番目のコマンドは、リダイレクト行2を同じテキストファイルに追加します。 PowerShellのコマンドとテキストファイルのスクリーンショットを次に示します。

PowerShellリダイレクト演算子を使用してテキストファイルに追加する方法

PowerShellのテキストファイルへの書き込みの例

PowerShellのテキストファイルへの書き込みの例

この最後のセクションでは、PowerShellでテキストファイルに書き込むための複数の例を共有します。例では、このガイドの最初の2つのセクションで説明されているスキルを適用します。

PowerShell出力をテキストファイルに書き込んで上書きする方法

テキストファイルの内容を上書きする方法は3つあります。まず、あなたが実行する場合 アウトファイル なしのコマンド 追加する パラメータを指定すると、テキストファイルの内容が上書きされます。

さらに、テキストファイルの内容を セットコンテンツ 指図。最後に、あなたは使用することができます >> テキストの内容を上書きするためのリダイレクト演算子。

いくつかの例を挙げると、以下のコマンドはテキストファイルの内容を上書きします。 E: reports overwrite.txt :

'does out-file overwrite - line 1' | Out-File E:
eportsoverwrite.txt 'does out-file overwrite - line 2' | Set-Content E:
eportsoverwrite.txt 'does out-file overwrite - line 3' > E:
eportsoverwrite.txt

以下のスクリーンショットは、コマンドとテキストファイルの最終的な内容を示しています。

PowerShell出力をテキストファイルとコンソールに書き込む方法

PowerShell出力をテキストファイルに書き込み、その出力をコンソールにも表示する場合は、次の2つのコマンドレットのいずれかを使用できます– 追加コンテンツ また セットコンテンツ 。

2つのコマンドレットには、というパラメータがあります パススルー 。を使用する場合 パススルー パラメータ、PowerShellは出力を指定されたテキストファイルパスに書き込みます。次に、それをコンソールにも表示します。

ただし、使用するコマンドレットは、テキストファイルに追加するか、テキストファイルの内容を上書きするかによって異なります。テキストファイルに追加するには、 追加コンテンツ 。

ボリュームは別のプロセスで使用されています

ただし、テキストファイルの内容を上書きする場合は、 セットコンテンツ 。 2つの例で説明します。

文を追加するには、これは次のように追加されます 追加コンテンツ 、指定したテキストファイルに移動し、コンソールにメッセージを表示するには、次のコマンドを実行します。

Add-Content -Path E:
eportsfirst-file.txt -Value 'this is appended by the  Add-Content  ' -PassThru

以下のスクリーンショットは、PowerShellでのコマンドの結果とテキストファイルの出力を示しています。

PowerShell出力をテキストファイルとコンソールに書き込む方法

逆に、テキストファイルの内容を上書きし、出力をコンソールにも書き込むには、次のコマンドを使用します…

Set-Content -Path E:
eportsfirst-file.txt -Value 'this overwrites the content of the file - using Set-Content' -PassThru

最後に、コンソールに表示され、テキストファイルに書き込まれたPowerShellコマンドの出力を次に示します。ただし、今回はテキストファイルの内容を上書きしました。

改行なしでPowerShell出力をテキストファイルに書き込む方法

このPowerShellコマンドを実行すると、テキストファイルの同じ行に出力を書き込む代わりに、VictorとAshieduの2つの文字列が2行で書き込まれます…

'Victor', 'Ashiedu' | Out-File E:
eports
onewline.txt

ただし、両方の文字列を同じ行に書き込むことが目的の場合は、 アウトファイル 呼び出されたコマンドレットパラメータ NoNewline 。

'Victor', 'Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline

これで、テキストファイルの同じ行に両方の文字列が含まれます。ただし、2つの文字列の間にスペースはありません。この場合、これは人の名前と名前です。

改行なしでPowerShell出力をテキストファイルに書き込む方法

2つの名前の間にスペースを含めるには、2番目の文字列Ashieduの前にスペースを追加します。以下のコマンドは、2番目の文字列の前にスペースがあることを除いて、前のコマンドと同じです。

'Victor', ' Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline

これがテキストファイルです…

テキストファイルを上書きしたくない場合は、 追加する 最後のコマンドのパラメータ。

UTF8エンコーディングを使用してPowerShell出力をテキストファイルに書き込む方法

The アウトファイル コマンドレットには、というパラメータがあります エンコーディング 。 PowerShell出力をテキストファイルに書き込む場合、このパラメーターを使用してファイルのエンコードを指定できます。

さらに、既存のテキストファイルのエンコーディングを変更する場合は、出力をパイプ処理できます。 Get-Content にコマンド アウトファイル 。

The エンコーディング パラメータは、UTF8、ASCII、UTF32などをサポートします。任意のエンコーディングタイプを指定できます。

したがって、このサブセクションは、PowerShell出力をUTF8エンコーディングでテキストファイルに書き込むことに関するものなので、これを実現できるコマンドの例を次に示します…

'Victor', 'Ashiedu' | Out-File E:
eportsUTF8.txt -Encoding utf8
Get-Content E:
eports
onewline.txt | Out-File E:
eports
onewlineUTF8.txt -Encoding utf8

最初のコマンドは、出力をUTF8エンコーディングでテキストファイルに書き込みます。

さらに、2番目のコマンドは、テキストファイルのコンテンツをPowerShellにインポートします。 Get-Content 。次に、同じ内容をUTF8エンコーディングで別のテキストファイルに書き込みます。

PowerShell書き込みファイルアクセス拒否エラーを修正する方法

PowerShell出力をテキストファイルに書き込もうとすると、アクセスが拒否されたというエラーメッセージが表示される場合があります。このエラーは、複数の理由で発生する可能性があります。

アクセス拒否のエラーメッセージが表示される理由の1つは、開いているテキストファイルに書き込もうとした場合です。また、別のWindowsプロセスで使用されているテキストファイルに書き込もうとすると、アクセス拒否エラーメッセージが表示される場合があります。

アクセス拒否エラーが発生する可能性があるもう1つの理由は、サポートされていない文字を含むテキストファイルを作成しようとした場合です。たとえば、名前に/を含むテキストファイルを作成しようとすると、アクセス拒否のエラーメッセージが表示される場合があります。

最後に、テキストファイルに読み取り専用属性がある場合は、アクセス拒否のエラーメッセージも表示されます。

したがって、この問題を解決するための解決策は、エラーメッセージの理由を特定することです。次に、変更を加えます。

次のサブセクションでは、PowerShell出力を読み取り専用属性を持つテキストファイルに書き込む方法を説明します。

PowerShellを使用して読み取り専用のテキストファイルに書き込む方法

PowerShell出力を読み取り専用テキストファイルに書き込もうとすると、アクセスが拒否されたというエラーメッセージが表示されます。これをテストするために、以前に作成したテキストファイルの1つに対して読み取り専用属性を有効にしました。

cprocraigslistの通知が機能しない
PowerShellを使用して読み取り専用のテキストファイルに書き込む方法

ここで、以下のコマンドを使用してテキストファイルに書き込もうとすると、アクセス拒否のエラーメッセージが表示されます。

'Victor', ' Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline

幸いなことに、テキストファイルに書き込むことができるすべてのPowerShellコマンドには、次のようなパラメーターがあります。 力 。このコマンドをに含める場合 アウトファイル 、 セットコンテンツ 、 また 追加コンテンツ 、読み取り専用のテキストファイルに書き込むことができます。

たとえば、最後のコマンドを次のように変更した場合、コマンドはエラーメッセージを返しません。

'Victor', ' Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline -Force

今回はコマンドが成功し、テキストファイルが更新されます!

PowerShellを使用して読み取り専用のテキストファイルに書き込む方法

PowerShell出力をテキストファイルに書き込み、存在しない場合はフォルダーを作成する方法

デフォルトでは、 アウトファイル 、 セットコンテンツ 、 また 追加コンテンツ コマンドを実行し、存在しないテキストファイルへのパスを指定すると、ファイルが作成されます。

ただし、指定されたパスに存在しないフォルダーが含まれている場合は、エラーメッセージが表示されます。これをテストするために、フォルダを含む以下のコマンドを実行します。 NoNewline –このフォルダは指定されたパスに存在しません…

'Victor', ' Ashiedu' | Out-File E:
eports    NoNewline    
onewline.txt -NoNewline -Force

このコマンドはエラーメッセージを返します。

この問題を修正するには、Test-Pathコマンドを使用して、パスが存在するかどうかを確認します。次に、存在しない場合は、 新商品 実行する前に作成するコマンド アウトファイル 指図。

更新されたスクリプトは次のとおりです。最後の行は、このガイドの最新のコマンドです…

$CheckFilePath = Test-Path E:
eports    NoNewline    
onewline.txt If ($CheckFilePath -eq $False) { New-Item -Path E:
eportsNoNewline
onewline.txt -ItemType File -Force } 'Victor', ' Ashiedu' | Out-File E:
eports    NoNewline    
onewline.txt -NoNewline -Force
The 力 パラメータは何を強制するかです 新商品 パスに存在しないすべてのフォルダを作成します。

スクリプトを実行するには、スクリプトを新しいPowerShellISEドキュメントにコピーして実行します。スクリプトを実行する前に、以下のスクリーンショットはフォルダーが存在しないことを示しています…

PowerShell出力をテキストファイルに書き込み、存在しない場合はフォルダーを作成する方法

スクリプトを実行した後、フォルダはパスに存在します…

最後に、 NoNewline フォルダ、あなたはテキストを見つけるでしょう、 nonewline.txt 。

PowerShell連結を使用してテキストファイルに書き込む方法

PowerShellを使用して、2つのテキストファイルのコンテンツを1つのテキストファイルに結合できます。 2つのテキストファイルを1つに結合するプロセスは、連結と呼ばれます。

例を挙げると、2つのファイルを作成しました。 Processfile1.txt と Processfile2.txt 。次に、私は使用します Get-Content ファイルを連結します。

最後に、の結果をパイプします Get-Content に セットコンテンツ マージされたファイルを単一のファイルに書き込みます。コマンドは次のとおりです…

Get-Process | out-file E:
eportsProcessfile1.txt Get-Process | out-file E:
eportsProcessfile2.txt Get-Content E:
eportsProcessfile1.txt, E:
eportsProcessfile2.txt | Set-Content E:
eportsSingleProcessfile.txt

PowerShellを使用して日付と時刻の出力をテキストファイルに書き込む方法

テキストファイルに日付と時刻を書き込む必要がある場合が非常に多くあります。 1つの例は、エラーログを生成する場合です。

たとえば、PowerShellスクリプトを使用して多数のサーバーでタスクを実行する場合は、スクリプトが接続できなかったサーバーを含むログファイルを作成することをお勧めします。このログファイルは、トラブルシューティングに使用できます。

さらに、このようなログファイルを作成するときは、日付とタイムスタンプを含めることもお勧めします。このようにして、スクリプトがいつサーバーに接続しようとしたかがわかります。

十分な話です! PowerShellを使用してテキストファイルに日付とタイムスタンプを書き込む方法を紹介します。この例では、テキストファイルに存在しないコンピューターのリストがあります。

以下のスクリプトでは、 テスト接続 コンピューターにpingを実行するコマンド。次に、コンピューターが応答すると、スクリプトはリモートコンピューターでいくつかのタスクを実行しようとします。

ただし、 テスト接続 コマンドがリモートコンピュータから応答を受け取らない場合、スクリプトは現在の日付とタイムスタンプを含むエラーメッセージを生成します。

最後に、スクリプトは日付とタイムスタンプを含むエラーログをテキストファイルに書き込みます。

これがスクリプトです。各行の詳細な説明については、以下を参照してください…

$Servers = Get-Content E:
eportsITGServers.txt $logfilename = Get-Date -Format 'dddd dd-MM-yyyy' $Servers.ForEach( { $PingTest = Test-Connection -ComputerName $_ -Count 1 -Quiet If ($PingTest -eq $True) { Get-EventLog -ComputerName $_ -LogName System } Else ` Out-File E:
eports$logfilename.txt -Append } )

スクリプトを実行するには、スクリプトを新しいPowerShell ISEドキュメントにコピーしてから、スクリプトを実行します。スクリプトを実行すると、次のファイルが作成されました。 水曜日02-06-2021.txt - 今日の日付。

さらに、テキストファイルのエントリを作成しました。 水曜日02-06-2021.txt –以下のスクリーンショットを参照してください…

スクリプトを説明するために、以下にコピーしました。また、参照しやすいように行番号を追加しました。

  Line 1  $Servers = Get-Content E:
eportsITGServers.txt  Line 2  $logfilename = Get-Date -Format 'dddd dd-MM-yyyy'  Line 3  $Servers.ForEach( {  Line 4  $PingTest = Test-Connection -ComputerName $_ -Count 1 -Quiet  Line 5  If ($PingTest -eq $True) {  Line 6   Get-EventLog -ComputerName $_ -LogName System  Line 7  }  Line 8  Else `  Line 11  Out-File E:
eports$logfilename.txt -Append  Line 12   Line 13  }  Line 14  )

この一見複雑なPowerShellスクリプトの内訳は次のとおりです。

  1. の ライン1 、私は使用しました Get-Content サーバーのリストをPowerShellにインポートするコマンド。サーバーはテキストファイル– Get-Content E: reports ITGServers.txtに保存されます。最後に、サーバーのリストの結果をという変数に保存しました サーバー 。
  2. 次に、 2行目 エラーメッセージを保存するテキストファイルの名前を作成しました。私は使用しました Get-Date テキストファイルを作成するコマンド。

    10行目では、PowerShellスクリプトを記述して、エラーログをテキストファイルに書き込みます。これについては後で詳しく説明します。最後に、このファイルをスクリプトの後半で使用できるようにするために、このファイルをという変数に保存しました。 logfilename 。
  3. スクリプトは続きます 3行目。 この行では、 ForEach 方法 。このメソッドを使用すると、に保存されているファイルのコンテンツを繰り返すことができます。 サーバー 変数。

    の2つの重要な要素があります ForEach 方法 3行目で紹介–(および{。最初の開き角かっこ、( ForEach 方法 。さらに、角かっこ{は ForEach コマンドステートメントブロック。
  4. 次に、 4行目 、に保存されている各サーバーにpingを実行します サーバー 変数。の各サイクル中 ForEach ブロックの反復、それはからサーバー名を取ります サーバー variable –自動変数$ _に保存します–次に、$ _に保存されたサーバー名をpingテストのコンピューター名として使用します。

    繰り返しになりますが、pingテストの結果に簡単にアクセスできるように、結果をという別の変数に保存します。 PingTest 。 pingテストの結果は次のいずれかになります 真 また 誤り 。
  5. の 5行目 、IFステートメントブロックを紹介します。次に、 調子 ブロックの一部()、サーバーごとに、pingテストの結果がに保存されているかどうかをテストします PingTest 変数は 真 また 誤り 。

    さらに、pingテストの結果が 真 、PowerShellスクリプトは、IFステートメントのコマンドブロックでタスクを実行します。 IFステートメントのコマンド・ブロックは、5行目の{括弧で始まります。
  6. 次に、 6行目 、IFステートメントブロックでコマンドを実行します。の 7行目 、IFステートメントのコマンドブロックを閉じ括弧}で閉じます。
  7. 8行目を紹介します それ以外 IFステートメントブロックのステートメント部分。このブロックでは、pingテストでFalseを返したすべてのサーバーで実行したいコマンドを実行します。
  8. の 9行目 、スクリプトは現在の日付と時刻を生成します。次に、結果をという変数に保存します 日付と時刻スタンプ 。スクリプトは10行目でこの変数を使用します
  9. 次に、 10行目 、PowerShellスクリプトは、現在の日付とタイムスタンプを2行目で作成したテキストファイルに書き込みます。9行目のコマンドは3つの部分に分かれています。

    最初の部分では、スクリプトがエラーメッセージの一部を生成します。この部分には、dateandtimestamp変数といくつかのスペースが含まれます。

    次に、コマンドの一部(メッセージ)に、スクリプトに実際のメッセージが含まれます–サーバー$ _は、pingに応答しなかったためスキップされました。自動変数$ _は、 ForEaxch のステートメント 4行目 。

    最後に、メッセージ全体がOut-Fileコマンドにパイプされます–これは 11行目 。
  10. 12行目を閉じます それ以外 閉じ角かっこ付きのステートメントコマンドブロック}。
  11. 次に、 13行目 、スクリプトはを閉じます ForEach 時計付きのステートメントコマンドブロック、閉じ括弧、}。
  12. 最後に、 14行目 、スクリプトはを閉じます ForEach 方法 閉じ括弧付き、)。 The ForEach 方法 3行目でオープンしました。

PowerShellを使用してテキストファイルに書き込む:よくある質問

Powershellを使用してテキストファイルに書き込む:よくある質問 1. PowerShellの結果をテキストファイルに送信するにはどうすればよいですか?

PowerShellの結果をテキストファイルに送信する方法は3つあります。

まず、テキストファイルに送信する結果の横にある>演算子を使用し、次にスペース、テキストファイルへのフルパスを使用できます。

さらに、Out-Fileコマンドのコマンドレットを使用できます。 Out-Fileを使用するには、PowerShellの結果をOut-Fileに出力し、その後にスペースを入れてから、テキストファイルへのフルパスをパイプ(|)します。

最後に、Add-Contentを使用して、PowerShellの結果を既存のテキストファイルに追加できます。使用法は、前に説明したOut-Fileと同様です。

2. PowerShellでテキストファイルを保存するにはどうすればよいですか?

あなたは使用することができます 新商品 PowerShellで新しいテキストファイルを作成するためのコマンドレット。テキストファイルにアイテムを追加して自動的に保存するには、 追加コンテンツ コマンドレット。

3. PowerShellでファイルを読み取るにはどうすればよいですか?

使用 Get-Content PowerShellでテキストファイルの内容を読み取るためのコマンドレット。たとえば、D: text.txtの内容を読み取るには、次のコマンドを使用します Get-Content D: text.txt

PowerShellでファイルを読み取る方法

4. PowerShellコンソールの変数に格納されている値をどのように表示しますか?

PowerShellに変数の名前を入力し、Enterキーを押します。 Powershell変数に格納されている値がコンソールに表示されます。たとえば、に保存されている値を表示するには $ Content 変数の場合は、PowerShellに$ Consoleと入力し、Enterキーを押します。

PowerShellコンソールの変数に格納されている値をどのように表示しますか?

5. PowerShellをどのように追加しますか?

PowerShellを追加する最も簡単な方法は、追加記号(+)で区切って数字を入力し、Enterキーを押すことです。たとえば、2と5を追加するには、次のように入力します。 2 + 5 、次にEnterキーを押します。回答がコンソールに表示されます。

PowerShellをどのように追加しますか

それだ! PowerShell出力をテキストファイルに書き込むための包括的な例を含む更新されたガイド。

このSゾーンがお役に立てば幸いです。役に立ったと思われる場合は、以下の「この投稿は役に立ちましたか」に「はい」と投票してください。

または、このページの最後にある[返信を残す]フォームを使用して、質問したり、コメントを残したり、フィードバックを提供したりすることもできます。

最後に、PowerShell Sゾーンの詳細については、WindowsPowerShellのハウツーページにアクセスしてください。また、ホームページからの作業が非常に役立つ場合があります。

参考文献と参考資料

  1. アウトファイル
  2. 追加コンテンツ
  3. セットコンテンツ
  4. アウトヌル
  5. Get-Date
  6. about_Redirection