批处理文件循环遍历文件夹并处理是否找到特定文件

批处理文件循环遍历文件夹并处理是否找到特定文件

我有大量网站运行相同的 CMS,我想批量更新它们。由于更新过程只需要将更新的文件复制到指定网站的文件夹中,因此批处理文件似乎适合这项任务。

有没有一个好的方法可以遍历一层深的文件夹列表(不需要更深入地检查),检查该文件夹中是否存在特定文件,如果找到,则运行一些命令(在这种情况下,我会让它运行一个命令从目标复制到文件夹)?

答案1

在这种情况下,您可以使用福尔菲莱斯命令(它是 Windows 7/2008/Vista 中的原生版本,并且必须从 Windows Server 2003 中的资源工具包中安装)。

只需在文本文件中列出所有文件夹即可。然后使用 for 循环迭代每个文件夹,并将它们提供给福尔菲莱斯命令用/p param,搜索指定文件名用/m param。若匹配,则执行命令用/c param

无论如何,我建议你使用一些更强大的工具,例如电源外壳

答案2

你运行的是什么操作系统?类似下面的代码对 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";
   }
}

相关内容