相关疑难解决方法(0)

PSObject,Hashtable和PSCustomObject之间的区别

任何人都能解释一下细节吗?如果我使用创建对象

$var = [PSObject]@{a=1;b=2;c=3}
Run Code Online (Sandbox Code Playgroud)

然后我使用getType()PowerShell 查找它的类型告诉我它的类型为Hashtable.

当使用Get-Member(别名gm)来检查对象时,很明显已经创建了一个哈希表,因为它有一个keys和一个values属性.那么"普通"散列表的区别是什么?

另外,使用PSCustomObject有什么好处?使用这样的东西创建一个

$var = [PSCustomObject]@{a=1;b=2;c=3}
Run Code Online (Sandbox Code Playgroud)

对我来说唯一可见的区别是PSCustomObject的不同数据类型.此外,还有一个检查gm显示现在每个键都已添加为NoteProperty对象,而不是键和值属性.

但我有什么优势?我可以通过使用其键来访问我的值,就像在哈希表中一样.我可以在PSCustomObject中存储多个简单的键值对(例如键对象对),就像在哈希表中一样.那有什么好处?有什么重要的区别吗?

powershell powershell-3.0 psobject

30
推荐指数
5
解决办法
4万
查看次数

更改对象中列的顺序

如何更改我的代码生成的输出的列顺序:

$apps = Import-CSV apps.csv
$computers = Import-CSV compobj.csv
foreach ($computer in $computers) {    
    $computerLob = $computer.lob
    $lobApps = $apps | ? {$_.lob -eq $computerLob }
    foreach ($app in $lobApps) {
        $computerHostname = $computer.hostname
        $appLocation = $app.location
        $installed=Test-Path "\\$computerHostname\$appLocation"      
        New-Object PSObject -Property @{
            Computer=$computer.hostname
            App=$app.appname
            Installed=$installed
        }
    }
Run Code Online (Sandbox Code Playgroud)

目前它按以下顺序生成列:Installed,App,Computer.

我希望按以下顺序进行:Computer,App,Installed.

powershell

3
推荐指数
4
解决办法
2万
查看次数

标签 统计

powershell ×2

powershell-3.0 ×1

psobject ×1