如何编写一个接受文件名的函数并在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"
}`
我仍然被困......
答案 0 :(得分:0)
我不确定我是否确切地理解了您的要求,但我还是有一些提示:
$extension = [System.IO.Path]::GetExtension($filename)
HKLM:\Software\Classes\$extension
时,大多数可用的两个值是&#34;内容类型&#34;和&#34;感知类型&#34; 如果您想获得其中一个值,例如&#34;内容类型&#34;,然后您可以执行以下操作:
function Get-FileType ([string]$fileName = " "){
$extension = [System.IO.Path]::GetExtension($filename)
$item = Get-Item HKLM:\Software\Classes\$extension
$item.GetValue("Content Type")
}
然后你需要添加一些控件来检查文件是否没有扩展名,或者注册表项是否存在,否则你可能会遇到一些错误......