2017-01-03 1 views
1

に関連するすべてのファイル名を取得:PowerShellは、私は、次のファイルのパスを必要以上にPowerShellの</p> <p><a href="https://i.stack.imgur.com/fHPRo.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fHPRo.png" alt="enter image description here"></a></p> <p>でのProjectItem下のすべてのファイルを取得したいのProjectItem

  • のWeb.config
  • Web.Debug.config
  • Web.Release.config

私はProjectItemを問題なく得ることができますが、FileNames配列を列挙する方法はわかりません。すべての要素が同じものを指しているように見えるので、配列を間違って列挙しなければならないと思います。

$projectItem.FileNames(0) => Path to web.config 
$projectItem.FileNames(1) => Path to web.config 

ここではいくつでも同じファイルパスを返すようです。

は、どのように私は、Webプロジェクトのパッケージマネージャコンソールでこれを入れ、これを試してみるためにPowerShellでのProjectItemからのすべての3つのファイルパス

を得るのです:

@(Get-Project).ProjectItems | Where {$_.Name.StartsWith("Web") } | Select { $_.FileNames(0) } 
+0

からdoc:_プロジェクトのアイテムのファイル名のインデックス番号が1からFileCountです。あなたは 'FileNames(2)'を試してみましたか? – sodawillow

+0

角かっこはどうですか? '$ projectItem.FileNames [0]' – BenH

+1

[この質問](http://stackoverflow.com/questions/14369504/dte-reading-projectitem-filenames-in-powershell)によると、括弧が働くはずです。私はVisual Studioがインストールされている、あなたが試して助けにPSにロードされた必要なアセンブリを持っているステップを与えることができますか? : – sodawillow

答えて

1

はそれを手に入れました。基本的には、Web.configというProjectItemProjectItemsコレクションを展開する必要があります。しかし、より単純な方法かもしれません。

$webconfig = @(Get-Project).ProjectItems | 
    Where-Object { $_.Name -eq "Web.config" } 

$webconfig.Properties("LocalPath").Value # path for web.config 

$webdebugconfig = $webconfig.ProjectItems | 
    Where-Object { $_.Name -eq "Web.Debug.config" } 

$webdebugconfig.Properties("LocalPath").Value # path for web.debug.config 

$webreleaseconfig = $webconfig.ProjectItems | 
    Where-Object { $_.Name -eq "Web.Release.config" } 

$webreleaseconfig.Properties("LocalPath").Value # path for web.release.config 
+0

まあまあ、私はそのファイル名プロパティがやっていたことを勘違いした。ありがとう –

関連する問題

 関連する問題