我有一个不包含任何扩展名为“rar”的文件的文件夹。我使用 gci(Get-ChildItem的别名)从 PowerShell 命令行运行以下命令:
PS> gci *.rar
正如预期的那样,由于不存在此类文件,因此没有报告任何内容。但是当我做一个"echo $?"
,它返回true。
如何测试给定文件扩展名的文件不存在?我在 Windows 7 上使用 PowerShell v2。
我有一个不包含任何扩展名为“rar”的文件的文件夹。我使用 gci(Get-ChildItem的别名)从 PowerShell 命令行运行以下命令:
PS> gci *.rar
正如预期的那样,由于不存在此类文件,因此没有报告任何内容。但是当我做一个"echo $?"
,它返回true。
如何测试给定文件扩展名的文件不存在?我在 Windows 7 上使用 PowerShell v2。
#If no rar files found...
if (!(gci c:\ *.rar)){
"No rar files!"
}
#If rar files found...
if (gci c:\ *.rar){
"Found rar file(s)!"
}
'if' 评估括号之间指定的条件,这将返回一个布尔值(True 或 False),如果条件返回 true,则执行大括号之间的代码。在这种情况下,如果 gci 返回 0 个将返回 False 的文件(可能相当于“如果存在”),那么在第一个示例中,我们使用not运算符 (!) 从本质上反转逻辑以返回 True 并执行代码块。在第二个示例中,我们正在寻找 rar 文件的存在,并希望代码块在找到时执行。
gci 返回一个数组。您可以检查数组中有多少个结果。
if ((gci *.rar | measure-object).count -eq 0)
{
"No rars"
}
使用 PowerShell v3 会更容易一些:
if ((gci *.rar).Count -eq 0)
{
"No rars"
}