有一些简单的脚本:
$sql = Get-ChildItem -Path "C:\files\" -Filter *.sql
在C:/ files /中可以是:
1。没有文件。(我的问题)
一个文件(test.sql)
多个文件。 (test1.sql,test2.sql等)
3我使用if ($sql.Count -gt 1 )
并且工作正常。
2 - 不太相关。
第一个是问题 - 我有任何方法(方法属性)来检查并获得错误或"退出1"如果源文件根本不存在? (没有任何if / else"魔法") 现在,当文件夹中没有任何* .sql文件时,它将路径字符串放入$ sql变量。
答案 0 :(得分:1)
Get-ChildItem
不会出错。因此,您无法使用-ErrorAction Stop
这意味着您可能需要使用条件。最简单的是:
if (!($sql)) {throw 1}
另一种选择是:
$sql = Get-ChildItem -Path "C:\files\" -Filter *.sql
Switch ($sql.count) {
0 { throw 1}
1 { "One Item" }
{$_ -gt 1} { "Multiple Items" }
default { "Invalid input" }
}