我有大量网站运行相同的 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";
}
}