c# - 是否有 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# 中,您可以这样做:
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是另外一个,还有其他的。
推荐阅读
- c# - 在已发布的应用程序中上传到 Blob 存储时出现 IOException
- java - 如何从java中的oject引用中获取价值
- linux - 如何在 Linux 上以发布模式构建 HIDAPI 库?
- apache-spark - 如何在 spark-shell 上使用 createDataFrame 和 createDF
- r - 在 dplyr 动词右侧取消引用变量名的最佳实践
- c# - ASP .NET Core Identity 自定义 ApiAuthorizationDbContext
- shiny - 来自networkD3的sankeyNetworkOutput的反应高度
- spring - 弹簧形式:输入不为空
- firebase - 如何在 Firebase cloudFunctions 的快速服务器中的 res.send() 之后执行代码
- arrays - 从 json 数组中检索值,其中属性等于 Ansible 的变量