- 创建文件,让在
C:\randomname\file.txt
说, 现在通过PowerShell中运行以下脚本:FolderItem.Name确实没有扩展名返回
$shell = new-object -com shell.application $folder = $shell.NameSpace("C:\randomname") $folder.Items() | where {$_.Name -eq "file.txt"}
观察无法产生输出这是相当意外。
任何想法如何以合理的方式解决这种情况,而不是修改Windows设置?
编辑:
为了防止混淆,我的实际问题,这仅仅是一个精简版。为什么我使用shell.application
而不是Get-ChildItem
的是,我randomname
文件夹其实是拉上的,即我有randomname.zip
和我的实际代码如下所示:
$shell = new-object -com shell.application
$zip = $shell.NameSpace("C:\randomname.zip")
$folder = $zip.Items() | where {$_.Name -eq "randomname"}
$folder.GetFolder.Items() | where {$_.Name -eq "file.txt"}
这与[tag:vba]有什么关系? – RubberDuck 2014-11-14 15:42:08
@RubberDuck从我对[MSDN](http://msdn.microsoft.com/en-us/library/windows/desktop/bb773938(v = vs.85).aspx)的理解中,看起来像shell对象可以在PowerShell和VBA中都可以使用,因此行为可能是相同的。虽然这只是我的猜测,但如果我错了,请纠正我。 – 2014-11-14 15:45:24
为什么你首先使用'Shell.Application'对象而不是'Get-ChildItem'? – 2014-11-14 15:46:14