【问题标题】:PowerShell Get-Content “foreach” on multiple files from multiple directoriesPowerShell Get-Content“foreach”来自多个目录的多个文件
【发布时间】:2014-08-06 04:12:57
【问题描述】:

我想在特定文件夹的内容中搜索Web.config 文件。 这是我正在使用的脚本,但它不起作用并且不知道如何调整它。

$folders=get-childitem E:\WebSystems\Configs\ | select Name
foreach($folder in $folders)
{
    get-content E:\WebSystems\Configs\$folder\Web.config
}

【问题讨论】:

  • 究竟有什么不好的地方?

标签: powershell


【解决方案1】:

请尝试以下代码,

$folders=get-childitem E:\WebSystems\Configs\ | select Name
foreach($folder in $folders)
{
$folderName = $folder.Name;
get-content E:\WebSystems\Configs\$folderName\Web.config
}

请确保文件夹 *E:\WebSystems\Configs* 只有子文件夹,没有文件。如果您仍然遇到错误,请发布确切的错误详细信息。

【讨论】:

  • 你就是那个男人!我也刚刚找到了另一种方式:get-childitem E:\WebSystems\Configs\ | Foreach-Object{get-content E:\WebSystems\Configs\$_\Web.config}
  • 顺便问一下,如何将字符串替换为那些单独的文件?
  • 谢谢,我刚刚在this thread 中找到了类似的东西,看看这是否适合你。
【解决方案2】:

怎么样

get-childitem E:\WebSystems\Configs\* -include Web.Config -recurse

您想对 Web.Config 文件的集合做什么? (Get-Content 可能不是很有帮助,因为输出不会告诉您哪些文件在哪个目录中。)

【讨论】:

    【解决方案3】:

    你可以这样做

    get-content E:\WebSystems\Configs\*\Web.config
    

    获取所有 Web.config 文件的数组。 如果你想遍历每个文件,你可以这样做

    get-childitem E:\WebSystems\Configs\*\Web.config | foreach{
      get-content $_.fullname }
    

    然后你可以使用搜索

    Get-Help Select-String
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-17
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      相关资源
      最近更新 更多