比较对象 Returns 没什么 powershell
Compare-Object Returns nothing powershell
所以我有这两个文件 "file1.txt" 和 "file2.txt" 以及列表,例如:
文件 1:
番茄
番茄酱
芥末酱
文件 2:
番茄
芥末酱
盐
然后我需要提取仅在第一个文件中的行,所以我尝试了
Compare-Object $(Get-Content file1.txt) $(Get-Content file2.txt)
它仍然向我显示所有台词,所以我选择了 属性
Compare-Object $(Get-Content file1.txt) $(Get-Content file2.txt) -Property inputObject
我得到了这个结果:
inputObject SideIndicator
----------- -------------
<=
我被困在网上,我从网上搜索得到的唯一结果是那些在添加“-属性”过滤器后得到正确答案的人。
提前致谢!
所以我遇到了两个问题(感谢@Olaf、@Lee_Dailey 和@JosefZ 的帮助!)
第一个问题是我从命令生成的列表中获取数据,所以有很多空格,运行 以下一组命令解决了这些问题:
(gc file1.txt) | ? {$_.trim() -ne "" } | set-content file1.txt
(gc file2.txt) | ? {$_.trim() -ne "" } | set-content file2.txt
(gc file1.txt) | ? {$_.trim() -ne " " } | set-content file1.txt
(gc file2.txt) | ? {$_.trim() -ne " " } | set-content file2.txt
之后我需要这样做(按照@JosefZ 的建议)来获得正确的结果集:
(Compare-Object $(Get-Content file1.txt) $(Get-Content file2.txt)|Where-Object {$_.SideIndicator -eq '<='}).InputObject
真的很感谢你们三位,我自己永远也找不到答案!
所以我有这两个文件 "file1.txt" 和 "file2.txt" 以及列表,例如:
文件 1:
番茄
番茄酱
芥末酱
文件 2:
番茄
芥末酱
盐
然后我需要提取仅在第一个文件中的行,所以我尝试了
Compare-Object $(Get-Content file1.txt) $(Get-Content file2.txt)
它仍然向我显示所有台词,所以我选择了 属性
Compare-Object $(Get-Content file1.txt) $(Get-Content file2.txt) -Property inputObject
我得到了这个结果:
inputObject SideIndicator
----------- -------------
<=
我被困在网上,我从网上搜索得到的唯一结果是那些在添加“-属性”过滤器后得到正确答案的人。
提前致谢!
所以我遇到了两个问题(感谢@Olaf、@Lee_Dailey 和@JosefZ 的帮助!)
第一个问题是我从命令生成的列表中获取数据,所以有很多空格,运行 以下一组命令解决了这些问题:
(gc file1.txt) | ? {$_.trim() -ne "" } | set-content file1.txt
(gc file2.txt) | ? {$_.trim() -ne "" } | set-content file2.txt
(gc file1.txt) | ? {$_.trim() -ne " " } | set-content file1.txt
(gc file2.txt) | ? {$_.trim() -ne " " } | set-content file2.txt
之后我需要这样做(按照@JosefZ 的建议)来获得正确的结果集:
(Compare-Object $(Get-Content file1.txt) $(Get-Content file2.txt)|Where-Object {$_.SideIndicator -eq '<='}).InputObject
真的很感谢你们三位,我自己永远也找不到答案!