PowerShell的异常调用“替换”和“3”的说法(S):“值不能为空

PowerShell的异常调用“替换”和“3”的说法(S):“值不能为空

问题描述:

虽然调用这个函数,我得到的异常呼叫零误差PowerShell的异常调用“替换”和“3”的说法(S):“值不能为空

代码:


if(Test-Path($Env:TEMP)) { 

    $hsPrefDataDirectories = Get-ChildItem "$Env:TEMP" | where {$_.Name -match "hsperfdata"} | Format-Table name -hideTableHeaders | Out-String -stream  
    $hsPrefDataDirectories = [regex]::Replace($hsPrefDataDirectories, "^\s+", '') 
    $hsPrefDataDirectories = [regex]::Replace($hsPrefDataDirectories, "\s+", ',') 
    $hsPrefDataDirectories = [regex]::Replace($hsPrefDataDirectories, ",$", '') 
    $hsPrefDataDirectories = $hsPrefDataDirectories.split(",") 
    ..... 
    $hsPrefDataDirectories = $hsPrefDataDirectories.split(",") 

Error: 

Exception calling "Replace" with "3" argument(s): "Value cannot be null. 
Parameter name: input" 

... 

You cannot call a method on a null-valued expression. 
+0

你的代码的目的是什么(你想要做什么)? – 2015-01-09 22:41:38

你,因为你得到这个错误 “$ ENV:TEMP” 文件夹中没有字符串 “hsperfdata” 匹配

在尝试替换字符之前,请确保$ hsPrefDataDirectories不为空。

+0

谢谢。我会检查并让你知道。 – VRK 2015-01-09 23:43:25

+0

当我添加if条件来检查目录是否为空时,它没有错误 if($ hsPrefDataDirectories -ne $ null){ – VRK 2015-01-12 22:01:53