如何编写一个接受文件名并返回文件描述类型的函数?

时间:2014-03-14 05:56:27

标签: powershell

如何编写一个接受文件名的函数并在Powershell中返回文件的描述类型?

基本上,我想创建一个名为Get-FileType的新函数,其中接受文件名Get-FileType MyFile并返回文件类型,例如.txt到目前为止,我必须键入{{1}为了返回扩展名。

如果注册表不包含该信息,那么我希望它返回包含MyFile.txt的字符串。我希望格式输出" textfile"如果接受的文件是" myfile.txt"

到目前为止我有这个:
    `function Get-FileType([string] $ fileName ="") {     $ extension = [System.IO.Path] :: GetExtension($ filename)

"<type> File"

}`

我仍然被困......

1 个答案:

答案 0 :(得分:0)

我不确定我是否确切地理解了您的要求,但我还是有一些提示:

  1. 要获取精确文件的扩展名,您需要使用以下命令:$extension = [System.IO.Path]::GetExtension($filename)
  2. 我不知道你的意思是&#34;描述类型&#34;。在我的注册表中,当我查看密钥HKLM:\Software\Classes\$extension时,大多数可用的两个值是&#34;内容类型&#34;和&#34;感知类型&#34;
  3. 如果您想获得其中一个值,例如&#34;内容类型&#34;,然后您可以执行以下操作:

    function Get-FileType ([string]$fileName = " "){ 
        $extension = [System.IO.Path]::GetExtension($filename) 
        $item = Get-Item HKLM:\Software\Classes\$extension
        $item.GetValue("Content Type")
    }
    

    然后你需要添加一些控件来检查文件是否没有扩展名,或者注册表项是否存在,否则你可能会遇到一些错误......