小编Joo*_*ost的帖子

Out-File:我为什么要结合-Append和-NoClobber?不是 - 够了吗?

我没有看到它们之间的区别

... | Out-File -Append
Run Code Online (Sandbox Code Playgroud)

... | Out-File -Append -NoClobber
Run Code Online (Sandbox Code Playgroud)

两者都将信息附加到文件,两者都不覆盖内容,如果文件不存在则都创建文件.然而,所有在互联网上的例子使用的组合-Append-NoClobber.

我错过了什么吗?

powershell

9
推荐指数
1
解决办法
1万
查看次数

即使在Receive-Job之后,"HasMoreData"也是如此

我在Powershell中创建了一个简单的后台作业:

Start-Job {"Hello"}
Run Code Online (Sandbox Code Playgroud)

我查看了Get-Job:

    Id        Name         State         HasMoreData      Location       Command
    --        ----         -----         -----------      --------       -------
    1         Job1         Completed     True             localhost      "Hello"
Run Code Online (Sandbox Code Playgroud)

接下来,我只是收到输出,然后再次运行Get-Job

Receive-Job 1
Get-Job
Run Code Online (Sandbox Code Playgroud)

我可以看到"HasMoreData"现在是假的,因为我没有指定-keep参数.

但是:似乎无论什么时候我开始一个工作,而不是Start-Job或者Invoke-Command,这个"HasMoreData"参数不会改为False.

例子:

Get-WMIObject win32_bios -AsJob
Test-Connection . -AsJob
Run Code Online (Sandbox Code Playgroud)

我是否可以绕过此(错误)行为,以便属性HasMoreData切换为False,除非我指定-keep

谢谢!

更新:它似乎适用于使用-AsJob参数进行的所有调用.如果你跑

Start-Job {Test-Connection .}
Run Code Online (Sandbox Code Playgroud)

它工作("HasMoreData"后变为False Receive-Job),但是

Test-Connection . -AsJob
Run Code Online (Sandbox Code Playgroud)

才不是.

powershell jobs

7
推荐指数
1
解决办法
5894
查看次数

定义自定义属性集(使用Add-Member?)以在Select-Object中使用

我尝试做的很简单:创建一个具有一些属性的自定义对象,然后定义属性(列)的"组"以在Select-Object中使用.让我澄清一下:

$props = @{"Mary"=1;"Jane"=2;"Frank"=3;"John"=5;"Brenda"=6}
$obj = New-Object PSObject $props
Run Code Online (Sandbox Code Playgroud)

我现在有一个带有一些虚假数据的自定义对象.我现在想要做的是

$obj | select Male
$obj | select Female
Run Code Online (Sandbox Code Playgroud)

而我曾想过会做的伎俩是这样的:

$obj | Add-Member PropertySet "Male" @("Frank","John")
$obj | Add-Member PropertySet "Female" @("Mary","Jane","Brenda")
Run Code Online (Sandbox Code Playgroud)

它不起作用 - 我收到此错误:

Add-Member : Cannot convert the "System.Object[]" value of type 
"System.Object[]" to type "System.Collections.ObjectModel.Collection`1[System.String]".
Run Code Online (Sandbox Code Playgroud)

我想我应该提供另一个对象类型而不是我的数组Add-Member,但我不确定我应该怎么做.

有任何人对此有经验吗?

重要提示:我在Powershell 2上,我在各种网站上看到它有一个不允许设置默认属性的错误.这不是我想做的 - 我想创建一个自定义属性集而不是默认属性集 - 但可能是这个bug也阻止了我得到我想要的东西.

powershell custom-object pscustomobject

3
推荐指数
1
解决办法
4319
查看次数

标签 统计

powershell ×3

custom-object ×1

jobs ×1

pscustomobject ×1