从对象输出PowerShell中删除@ {}标记

时间:2018-06-24 19:35:16

标签: powershell

我需要帮助从对象输出中删除@ {}扩展名。

下面的代码列出了文件夹中最后修改的文件。但是输出在扩展名@ {}中。

我已经尝试过输出字符串,但是它不起作用。

function scriptA() {
Get-ChildItem $path | Where-Object {!$_.PsIsContainer} | Select fullname -last 1
}

function scriptB() {
Get-ChildItem $path2 | Where-Object {!$_.PsIsContainer} | Select fullname -last 1
}

$data1=ScritA
$data2=ScriptB

$result=@()
$list=@{
FirstFile=$data1
SecondFile=$data2
}

$result+= New-Object psobject -Property $list
$result | Export-Csv -append -Path  $csv

这将输出: FirstFile @ {data1}和 SecondFile @ {data2}

2 个答案:

答案 0 :(得分:2)

对此稍作更改-

function scriptA() {
Get-ChildItem $path | Where-Object {!$_.PsIsContainer} | Select-Object -ExpandProperty fullname -last 1
}

function scriptB() {
Get-ChildItem $path2 | Where-Object {!$_.PsIsContainer} | Select-Object -ExpandProperty fullname -last 1
}

这样做可以只选择FullName属性。

OR

如果您不想更改功能,请将$list分配更改为-

$list=@{
FirstFile = $data1.FullName
SecondFile = $data2.FullName
}

答案 1 :(得分:0)

New-Object PSObject -Property @{FirstFile = ($a = (Get-ChildItem $path1),(Get-ChildItem $path2) |
Where-Object {!$_.PSIsContainer} | ForEach-Object {$_[-1].FullName})[0];SecondFile = $a[1]} |
Export-Csv $csv -NoTypeInformation