Powershell:您不能调用空值表达式

时间:2018-07-30 13:03:12

标签: powershell copy

Hello Stack溢出社区,

此刻,我正在努力处理这段代码(不是那么漂亮):

console.log(true === 1 )
-> false

console.log(true === !0)
-> true === true
-> true

该代码有效。但我也收到一条错误消息:

  

您不能调用空值表达式

Error Message

我该如何解决?

1 个答案:

答案 0 :(得分:1)

Get-ChildItem默认返回文件和文件夹。如果只需要文件,则应使用-File。否则,您的$Files也将包含文件夹(因为它们具有LastWriteTime属性)。

如果您尝试在文件夹上运行.DirectoryName.Replace($filepath,""),它将返回诸如无法在$null上运行替换的错误。

更新:对于PowerShell 2.0,您可以使用| where { ! $_.PSIsContainer }source


我如何自己进行故障排除?

在您的错误中,您可以看到哪条线坏了:

$NewPath = $File.DirectoryName.Replace($filepath,"")

解决此类情况所需要做的就是列出所有涉及的变量并检查其值。您可以这样:

$File
$File.DirectoryName
Pause

$NewPath = $File.DirectoryName.Replace($filepath,"")

使用Pause可能会很有用,因为它会等您按 Enter 继续。