質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

3305閲覧

【PowerShell】Add-Content実行時のエラーについて

o-michi

総合スコア1

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2024/02/02 10:24

Windows10上でPowerShellのプログラムを用いて数万行あるテキスト(CSV)ファイルを読み込み、加工してテキストへ出力するプログラムを作成したのですが、時々エラーが発生します。
エラーの発生個所は出力用のテキストファイルへ書き込む部分のようです。以下がエラーメッセージです。

Add-Content : ストリームを読み取れませんでした。 発生場所 C:\work\XXXXXXXXX.ps1:565 文字:25 + ... Add-Content -LiteralPath $xxx -Value $xxx ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (C:\work\xxxxx...xxxx.CSV:String) [Add-Content]、ArgumentException + FullyQualifiedErrorId : GetContentWriterArgumentError,Microsoft.PowerShell.Commands.AddContentCommand

該当部分のソースは以下のような感じで同じテキストファイルに対して連続で書き込みを行っています。

# 出力ファイルへ追加書き込み1 Add-Content -LiteralPath $xxx -Value $String1 # 出力ファイルへ追加書き込み2 Add-Content -LiteralPath $xxx -Value $String2

エラーが発生する頻度は一定ではありません。
書き込みが連続していることが原因で発生するエラーなのかと思っているのですが、何か対策はあるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

■Add-Content命令はReadLockがあります。Out-File -Append 命令はReadLockがありません。

PowerShell

1$xxx = "c:\work\Write.csv" 2$String1 = "a,b,c" 3$String2 = "x,y,z" 4Write-Output $String1 | Out-File -append -Encoding Default -LiteralPath $xxx 5Write-Output $String2 | Out-File -append -Encoding Default -LiteralPath $xxx 6 7# 資料 https://tech.guitarrapc.com/entry/2014/02/11/061627 8# ┌─────┬──────┬────────┐ 9# │機能 │ Content │ Out-File │ 10# ├─────┼──────┼────────┤ 11# │追記 │Add-Content │Out-File -Append│ 12# ├─────┼──────┼────────┤ 13# │Read Lock │〇 │× │ 14# └─────┴──────┴────────┘

投稿2024/02/02 15:52

ccc-

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

o-michi

2024/02/05 02:32

早速回答ありがとうございます。 ご提示いただきました方法を試したところ、エラーが出なくなりました! 大変助かりました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問