在PowerShell中搜索特定子文件夹中的文件

时间:2017-07-12 06:57:42

标签: c# powershell

根据要求,在特定子文件夹中搜索文件,然后复制到目标路径。我之前在c#.NET中实现过,但现在想要在PowerShell中进行转换。

foreach (var directory in Directory.EnumerateDirectories(sourcePath, specificChildFolder, SearchOption.AllDirectories))
{
          var pathSrc = Path.Combine(directory, "xyz.config");
          if (File.Exists(pathSrc))
          {
              File.Copy(pathSrc, pathDst, true);
              break;
          }
}

1 个答案:

答案 0 :(得分:1)

以下是您可以使用的代码:

$path = "C:\Users\user1\Desktop\Config Rework\"
$destination = "c:\destination\"
foreach ($filepath in [System.IO.Directory]::EnumerateFiles($path,"xyz.config","AllDirectories"))
   {
      $file = New-Object System.IO.FileInfo($filepath)

      if(Test-Path $file)
      {
        write-host $file.FullName
        copy $file $destination
        Write-Host 'Copied' $file ' to ' $destination
      }
   }

输出:

C:\Users\user1\Desktop\Config Rework\xyz\xyz.config
Copied C:\Users\user1\Desktop\Config Rework\xyz\xyz.config  to  c:\destination\

这已遍历C:\ Users \ user1 \ Desktop \ Config Rework下的子文件夹,检查xyz.config是否存在,然后将其复制到目标文件夹。

请注意,如果您的目录如下所示:

enter image description here

xyz文件夹下的xyz.config优先,因为它将遍历子文件夹。