Batch-File

批處理文件以循環遍歷文件夾並在找到特定文件時進行處理

  • June 25, 2013

我有大量執行相同 CMS 的網站,我想批量更新這些 CMS。由於更新過程只需要將更新的文件複製到給定站點的文件夾中,因此批處理文件似乎適合該任務。

有沒有一種很好的方法來遍歷文件夾列表的深度一級(不需要更深入地檢查),檢查該文件夾中是否存在特定文件,如果找到,執行一些命令(在這種情況下,我將有它執行命令從目標複製到文件夾)?

在這種情況下,您可以使用Forfiles命令(它在 Windows 7/2008/Vista 中是本機的,並且必須從 Windows Server 2003 中的資源工具包中安裝)。

只需在文本文件中列出所有文件夾。然後使用 for 循環迭代每個文件夾,將它們提供給Forfiles命令,使用./p param搜尋指定文件名/m param。如果匹配,則執行帶有 的命令/c param

無論如何,我建議你使用一些更強大的工具,比如PowerShell

你在什麼作業系統上執行?像這樣的東西適用於 Perl:

opendir DIR, $dirname or die "Couldn't open dir '$dirname': $!";
my @files = readdir(DIR); 
closedir DIR; 

foreach my $file (@files) {
  if ($file =~ /filename/) {
     print "Matched file process";
  }
}

引用自:https://serverfault.com/questions/518428