我需要提取其中我不知道名稱的某些dll文件的文件版本。我所知道的是保存fileversion的文件所在的位置,它的名稱與隱藏在其下的文件夾相同。Powershell查找具有相同名稱的文件夾和文件
事實上它是這樣的:
C:\的Inetpub \ wwwroot的\ APPFolder \ BIN \文件 (凡子文件夾的名稱在bin文件夾中的文件的名稱相匹配)
多次嘗試(和失敗的很多)之後,我已經有點來回,現在我在這段代碼....接近,但沒有雪茄靠在舒服:
Get-ChildItem -Path c:\temp\Documents -recurse -Filter *.dll | where-object{ (Get-ChildItem -Path c:\temp\Documents -recurse -Filter *.dll) -match $_.Directory.Name }
此代碼在\ temp \ documents下遞歸地存儲所有文件,然後m atches在文件夾中的文件,這是很好的...但不是我想要的。此外,上面的代碼給出了與其所在文件夾匹配的文件所在的文件夾,而不僅僅是匹配的文件。
所以...有什麼建議嗎?上面提到的bin文件夾中有多個dll文件,這是我需要選擇與APPFolder同名的文件的一部分。
好吧:)至少它給了我想要的一個文件...如果該文件與名稱暗示在同一個文件夾下。 – SkyRaider
唯一的問題是,我需要匹配的文件是在另一個文件夾下。就像你說的「這將過濾到文件名與目錄名稱相同的dll」,而我需要類似「這將過濾到文件名爲dll的dll與其所在目錄的名稱相同,它是子目錄「。 dll文件位於具有相同名稱的文件夾下一步。 – SkyRaider
顯然它列出了只有$ _。Directory.Name的子目錄,或者只是GetFileNameWithout .....但是當試圖匹配另一個時,它只匹配它所在的文件夾(主文件夾下的一個文件夾) – SkyRaider