我知道已经有一些堆栈溢出问题,但我已经尝试了很多解决方案并且不断出现同样的错误.问题是这样的:
我有2个数组(每个索引代表一个文件夹)
$originDirsArr = @(2, 257, 256, 3, 4, 10)
$tempDirArr = @(2, 257, 256, 3, 4)
Run Code Online (Sandbox Code Playgroud)
我想再次比较$ arr2 $ arr1,如果$ arr1中有东西不在$ arr2中,则删除它.即,在这种情况下,$ arr2中的10个DNE,因此该文件夹应该被删除.
这是我尝试过的:
$c = Compare-Object -ReferenceObject ($originDirsArr) `
-DifferenceObject ($tempDirArr) -Passthru
$c
Run Code Online (Sandbox Code Playgroud)
也:
while ($t -lt $originDirsArr.length){
$originDirsArr[$t]
if ( $tempDirArr -notContain $originDirsArr[$t]){
"$_ does not exist in original and needs to be deleted"
}else{
"$_ does still exist in the temp"
}
$t++
}
Run Code Online (Sandbox Code Playgroud)
最后:
Compare-Object $originDirsArr $tempDirArr | ForEach-Object { $_.InputObject }
Run Code Online (Sandbox Code Playgroud)
每次我不断得到某种错误,无论是ReferenceObject还是DifferenceObject都是null.我知道它不是null因为我可以打印出内容,即使在那个例子中在t上编入索引,我仍然有内容.
在先进的感谢,任何帮助将不胜感激!
我也有点厌恶compare-object.由于这些是简单的数组,因此只需一个foreach循环即可-notcontains.
$originDirsArr = @(2, 257, 256, 3, 4, 10)
$tempDirArr = @(2, 257, 256, 3, 4)
foreach ($item in $originDirsArr) {
if ($tempDirArr -notcontains $item) {
Write-Output "Do something with $item";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6482 次 |
| 最近记录: |