首页 > 解决方案 > 是否有 CMD 或 C# 的命令来查找特定文件,然后将该文件复制到其他文件夹?

问题描述

我正在尝试制作批处理文件,使用查找文件的命令包含特定单词,然后将该文件复制/移动到某个文件夹,我该怎么做?

我试试这个:

@echo off
for /f "delims=" %%a in ('dir *.txt /b /a-d ^|find "hello" ') do copy "%%a" C:\final
pause

它复制名称为“hey”的文件,但不复制包含“-hey”的文件

标签: c#cmd

解决方案


在 C# 中,您可以这样做:

void Main()
{
    var searchFor = "hello";
    var folder = @"c:\temp";
    var files = new DirectoryInfo(folder)
    .GetFiles("*.txt",SearchOption.TopDirectoryOnly)
    .Where(n => Regex.IsMatch(File.ReadAllText(n.FullName),searchFor,RegexOptions.IgnoreCase));

    foreach (var f in files)
    {
        Console.WriteLine(f.FullName);
    }
}

如果您正在寻找现成的实用程序,请检查 voidtools 的 Everything。Total Commander的Alt+F7是另外一个,还有其他的。


推荐阅读