【发布时间】:2017-08-22 15:58:29
【问题描述】:
我有两个存储在变量中的路径,我通过 gci 命令运行以检查访问,有点像这样:
$p1 = c:\testing\folder1 #path is access denied
$p2 = c:\testing\folder2 #path doesn't exist
注意:错误是故意的,因为我试图在脚本中测试我的错误处理
如果我通过如下命令运行它们,我会得到相应的错误:
gci $p1
error: access denied c:\testing\folder1
gci $p2
error: file doesn't exist c:\testing\folder2
gci -recurse $p1
error: access denied c:\testing\folder1
gci -recurse $p2
error: access denied c:\testing\folder1
有人知道为什么会发生这种情况吗?
起初我认为将路径变量输入我的函数是一个问题,但我观察了变量并且它们发生了适当的变化。上面的示例与我在脚本外部的 powershell 命令提示符下尝试的完全一样(当然错误文本被简化了......但你明白了要点)。
当我在脚本中运行它并检查 $error 输出时,它与我在命令行运行命令时发现的结果一致。
Windows 7 sp1 上的 Powershell 版本为 4.0。
【问题讨论】:
-
$p1 = c:\testing\folder1应该是$p1 = 'c:\testing\folder1'否则会出现c:\testing\folder1: The term 'c:\testing\folder1' is not recognized as the name of a …错误。
标签: powershell error-handling get-childitem