- 創建文件,讓在
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