比较2个数组并使用powershell将输出包装在引号中

时间:2017-05-19 08:06:43

标签: powershell

在一个目录中,将有两种类型相同但扩展名不同的文件,例如:1.png,1.txt,test_76.png,test_76.txt,test_70.png。在这种情况下,test_70.png dosent有其.txt对应物。我正在使用此代码

$scL = dir *.txt | select Basename 
$SList = @($scL -notmatch "MICRO")

$pList = dir *.png | select Basename
$PList = @($pList -notmatch "MICRO")

Compare-Object $PList $SList | ForEach-Object {$_.InputObject} | out-file result.txt

但是我无法在输出文件中获得所需的输出test_70.png。另外我想用双引号将输出包装在文本文件中,即; outfile应包含类似“test_70.png”的条目。任何人都可以对compare-object cmdlet中缺少的内容进行说明。

1 个答案:

答案 0 :(得分:0)

您的InputObject是一个文件对象,因此您需要访问该名称。同样在Powershell中,您可以直接访问集合中项目的属性。像这样:

(Compare-Object $PList $SList).InputObject.Name | % {"`"$_`""} | Out-File result.txt