我想检索文件的内容,过滤并修改它们并将结果写回文件。我这样做:

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的方法是可行的,但是将来如果你需要合成这样的属性,那么使用像这样的哈希表:

<*>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top