Powershell使用参数实例化类构造函数

时间:2014-11-21 10:09:36

标签: powershell

我是PowerShell的新手。我正在尝试编写一个简单的例程,但它失败了。代码和错误消息如下。我尝试了很多组合。我做错了什么?

$fileContent = Get-Content "ExePaths.txt"
foreach ($file in $fileContent)
{
    if($file.Contains("Executable"))
        {
            $path = $file.Replace("""Executable""=","")
            $path = $path.Replace("\\","\")
            echo $path
            $fileInfoData = New-Object -TypeName System.IO.FileInfo -fileName $path
            echo $fileInfoData.FullName
            break;

            ##echo $fileInfoData.FullName   
        }
}

错误消息

New-Object : A parameter cannot be found that matches parameter name 'fileName'.
At C:\Users\siluvaie\Desktop\Docs\Barcap\Projects\FV8\reg from prod servers\ReadFile.ps1:9 char:69
+             $fileInfoData = New-Object -TypeName System.IO.FileInfo -fileName <<<<  $path
    + CategoryInfo          : InvalidArgument: (:) [New-Object], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

3 个答案:

答案 0 :(得分:0)

使用ArgumentList参数:

$fileInfoData = New-Object -TypeName System.IO.FileInfo -ArgumentList $path

答案 1 :(得分:0)

您需要像在.NET中一样使用构造函数。在您的示例中,您将-fileName参数传递给New-Object cmdlet,而不是FileInfo类。

$fileInfoData = New-Object -TypeName System.IO.FileInfo($path)

答案 2 :(得分:0)

我会使用Get-Item而不是System.IO.FileInfo

$fileInfoData = Get-Item $path

然后

$fileInfoData.FullName