if ((Get-ChildItem "I:\temp").Length -ne 0) {
$locations = (Get-Item "I:\temp"), (Get-ChildItem "I:\temp" -Directory -Recurse) | % {
Get-ChildItem -File $_.FullName |
Select-String -List -Pattern '^\d{3}-?\d{2}-?\d{4}$' |
% Path
}
if ($locations) {
$locations | Out-File "I:\temp\SSN_FILES.txt"
} else {
Get-ChildItem "I:\temp" -Exclude "fullpath.txt", "SSN_FILES.txt" | Remove-Item
}
}
我需要确定$locations
是否为真。如果是,则执行第一个操作,如果为false,则执行第二个操作。我遇到的问题是我无法找到确定$locations
是否为真的方法(等于匹配的正则表达式)。
答案 0 :(得分:2)
如果变量存在,if
返回true
之前面临此问题,并且设置为非假值(不一定为true,而是某个值)。
这样做:
if($locations -eq $true){ # to check it is set to the boolean true
if($locations -ne $null){ # to check if it contains a value