首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell Shell.Application对象找不到文件夹

Powershell Shell.Application对象找不到文件夹
EN

Stack Overflow用户
提问于 2017-08-14 22:31:02
回答 1查看 584关注 0票数 1

我正在尝试从文件中获取元数据。我使用的是here的代码示例。

下面是我用来尝试访问任何文件夹的一些示例代码,因为我似乎不能这样做:

代码语言:javascript
复制
$TheThing = "C:\Windows"

$folder = {$TheThing}

foreach($sFolder in $folder) 
  { 
   $a = 0 
   $objShell = New-Object -ComObject Shell.Application 
   $objFolder = $objShell.NameSpace($folder)

   foreach ($File in $objFolder.items()) 
    {  
     $FileMetaData = New-Object PSOBJECT 
      for ($a ; $a  -le 266; $a++) 
       {  
         if($objFolder.getDetailsOf($File, $a)) 
           { 
             $hash += @{$($objFolder.getDetailsOf($objFolder.items, $a))  = 
                   $($objFolder.getDetailsOf($File, $a)) } 
            $FileMetaData | Add-Member $hash 
            $hash.clear()  
           } #end if 
       } #end for  
     $a=0 
     $FileMetaData 
    } #end foreach $file 
  } #end foreach $sfolder 

这行代码:

代码语言:javascript
复制
$objFolder = $objShell.NameSpace($folder)

...实际上什么也做不了。事实上,当代码进入foreach循环时,它会失败,并在该行上显示“您不能在空值表达式上调用方法”错误:

代码语言:javascript
复制
foreach ($File in $objFolder.items()) 

我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-14 22:50:06

这一行导致了您的问题:

代码语言:javascript
复制
$folder = {$TheThing}

它需要是:

代码语言:javascript
复制
$folder = $TheThing

通过使用{ },您可以使其成为一个scriptblock,因为您只需要它是一个带有您想要查询的路径的字符串。

您也可以只将路径放在那里,而不是让两个变量用于一个目的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45676896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档