Powershell:object []をファイルに出力します
-
06-07-2019 - |
質問
ファイルの内容を取得し、それらをフィルタリングおよび変更して、結果をファイルに書き戻したい。これを行います:
PS C:\code> "test1" >> test.txt
PS C:\code> "test2" >> test.txt
PS C:\code> $testContents = Get-Content test.txt
PS C:\code> $newTestContents = $testContents | Select-Object {"abc -" + ファイルの内容を取得し、それらをフィルタリングおよび変更して、結果をファイルに書き戻したい。これを行います:
"abc -" + ファイルの内容を取得し、それらをフィルタリングおよび変更して、結果をファイルに書き戻したい。これを行います:
PS C:\code> "test1" >> test.txt
PS C:\code> "test2" >> test.txt
PS C:\code> $testContents = Get-Content test.txt
PS C:\code> $newTestContents = $testContents | Select-Object {"abc -" + ファイルの内容を取得し、それらをフィルタリングおよび変更して、結果をファイルに書き戻したい。これを行います:
<*>
output.txtに含まれる
<*>
最初の行で何が得られますか?これは、foreachがIEnumerableを返すようなものですが、$ newTestContents.GetType()はそれがオブジェクト配列であることを明らかにします。それで何が得られますか?奇妙なヘッダーなしで配列を正常に出力するにはどうすればよいですか。
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
}
PS C:\code> $newTestContents >> output.txt
output.txtに含まれる
<*>
最初の行で何が得られますか?これは、foreachがIEnumerableを返すようなものですが、$ newTestContents.GetType()はそれがオブジェクト配列であることを明らかにします。それで何が得られますか?奇妙なヘッダーなしで配列を正常に出力するにはどうすればよいですか。
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
------------
abc -test1
abc -test2
output.txtに含まれる
<*>
最初の行で何が得られますか?これは、foreachがIEnumerableを返すようなものですが、$ newTestContents.GetType()はそれがオブジェクト配列であることを明らかにします。それで何が得られますか?奇妙なヘッダーなしで配列を正常に出力するにはどうすればよいですか。
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
}
PS C:\code> $newTestContents >> output.txt
output.txtに含まれる
<*>最初の行で何が得られますか?これは、foreachがIEnumerableを返すようなものですが、$ newTestContents.GetType()はそれがオブジェクト配列であることを明らかにします。それで何が得られますか?奇妙なヘッダーなしで配列を正常に出力するにはどうすればよいですか。
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
解決
Select-Objectの代わりにForEachを使用
他のヒント
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> [string]$newTestContents[0]
@{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> $newTestContents | %{
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> [string]$newTestContents[0]
@{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> $newTestContents = $testContents | Select @{n='MyName';e={"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> [string]$newTestContents[0]
@{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> $newTestContents | %{
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> [string]$newTestContents[0]
@{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
<*>
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>=abc -test1}
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>.{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> [string]$newTestContents[0]
@{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
<*>
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>=abc -test1}
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>}}
abc -test1
abc -test2
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>=abc -test1}
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>}}
PS> $newTestContents
MyName
------
abc -test1
abc -test2
PS> $newTestContents[0].MyName
abc -test1
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>=abc -test1}
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>.{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
PS> [string]$newTestContents[0]
@{"abc -" +
また、$ newTestContents [0] .ToString()が空の文字列である理由を教えていただければ、ボーナスポイントもあります
そのタイプを見ると、それはPSCustomObjectです。
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
リフレクターでPSCustomObjectのToString()implを見ると、次のように表示されます。
public override string ToString()
{
return "";
}
これを行う理由はわかりません。ただし、PowerShellで文字列型の強制を使用することをお勧めします。例:
<*>
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>=abc -test1}
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>}}
abc -test1
abc -test2
おそらくこの結果を探していました:
<*>
これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>=abc -test1}
おそらくこの結果を探していました:
<*>これは、Select-Objectを単純なスクリプトブロックで使用すると、そのスクリプトブロックの内容が、作成されるPSCustomObjectの新しいプロパティ名を形成することを示しています。一般的に、Nestorのアプローチは進むべき道ですが、将来、このようなプロパティを合成する必要がある場合は、次のようなハッシュテーブルを使用してください。
<*>