Powershell:将对象[]输出到文件
-
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()是一个空白字符串
也是奖励积分解决方案
使用ForEach而不是Select-Object
其他提示
如果你能告诉我为什么$ newTestContents [0] .ToString()是一个空白字符串
也是奖励积分
如果你看它的类型,那就是PSCustomObject,例如
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
如果你在Reflector中查看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
如果你在Reflector中查看PSCustomObject的ToString()impl,你会看到:
public override string ToString()
{
return "";
}
为什么会这样,我不知道。但是,在PowerShell中使用字符串类型强制可能更好,例如:
PS> $newTestContents | %{
如果你能告诉我为什么$ newTestContents [0] .ToString()是一个空白字符串
也是奖励积分
如果你看它的类型,那就是PSCustomObject,例如
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
如果你在Reflector中查看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
如果你在Reflector中查看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
如果你在Reflector中查看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
如果你在Reflector中查看PSCustomObject的ToString()impl,你会看到:
public override string ToString()
{
return "";
}
为什么会这样,我不知道。但是,在PowerShell中使用字符串类型强制可能更好,例如:
PS> $newTestContents | %{
如果你能告诉我为什么$ newTestContents [0] .ToString()是一个空白字符串
也是奖励积分
如果你看它的类型,那就是PSCustomObject,例如
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
如果你在Reflector中查看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
如果你在Reflector中查看PSCustomObject的ToString()impl,你会看到:
public override string ToString()
{
return "";
}
为什么会这样,我不知道。但是,在PowerShell中使用字符串类型强制可能更好,例如:
<*>
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>=abc -test1}
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>.{"abc -" +
如果你能告诉我为什么$ newTestContents [0] .ToString()是一个空白字符串
也是奖励积分
如果你看它的类型,那就是PSCustomObject,例如
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
如果你在Reflector中查看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
如果你在Reflector中查看PSCustomObject的ToString()impl,你会看到:
public override string ToString()
{
return "";
}
为什么会这样,我不知道。但是,在PowerShell中使用字符串类型强制可能更好,例如:
<*>
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>=abc -test1}
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>}}
abc -test1
abc -test2
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>=abc -test1}
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>}}
PS> $newTestContents
MyName
------
abc -test1
abc -test2
PS> $newTestContents[0].MyName
abc -test1
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>=abc -test1}
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>.{"abc -" +
如果你能告诉我为什么$ newTestContents [0] .ToString()是一个空白字符串
也是奖励积分
如果你看它的类型,那就是PSCustomObject,例如
PS> $newTestContents[0].GetType().FullName
System.Management.Automation.PSCustomObject
如果你在Reflector中查看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
如果你在Reflector中查看PSCustomObject的ToString()impl,你会看到:
public override string ToString()
{
return "";
}
为什么会这样,我不知道。但是,在PowerShell中使用字符串类型强制可能更好,例如:
<*>
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>=abc -test1}
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>}}
abc -test1
abc -test2
也许你正在寻找这个结果:
<*>
这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>=abc -test1}
也许你正在寻找这个结果:
<*>这表明当您使用带有简单scriptblock的Select-Object时,该scriptblock的内容将在创建的PSCustomObject上形成新的属性名称。一般来说,Nestor的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:
<*>