Batch file Batch file可将某些文件类型从某些子目录复制到一个文件夹
希望将开发子文件夹中扩展名为*.cpp的所有文件复制到新目录 例如,C:\source有10个名为A1到A10的文件夹。每个文件夹都有子文件夹,例如开发、挂起、发布。我想从所有开发子文件夹中提取所有*.cpp,并将其放在C:\destination中 示例C:\source\A1\development\folder包含文件one.cpp C:\source\A1\released\文件夹包含两个.cpp 我只需要路径中包含开发名称的文件*.cpp。 因此,在本例中,只应将一个.cpp复制到newfolder 我可以通过cmd提示符命名这些文件: dir/s/b*.cpp | findstr/i/m development>outfile.txt 注意上面的dir命令只搜索文件名,而不是文件的内容 我想我可以使用outfile.txt并运行另一个批处理文件 然而,必须有更简单的方法 顺便说一句: 不允许限制到子文件夹。来自: 但确实需要从批处理文件运行Batch file Batch file可将某些文件类型从某些子目录复制到一个文件夹,batch-file,copy,Batch File,Copy,希望将开发子文件夹中扩展名为*.cpp的所有文件复制到新目录 例如,C:\source有10个名为A1到A10的文件夹。每个文件夹都有子文件夹,例如开发、挂起、发布。我想从所有开发子文件夹中提取所有*.cpp,并将其放在C:\destination中 示例C:\source\A1\development\folder包含文件one.cpp C:\source\A1\released\文件夹包含两个.cpp 我只需要路径中包含开发名称的文件*.cpp。 因此,在本例中,只应将一个.cpp复制到ne
for /f "delims=" %%A in ('findstr /i /M "glossary" *.txt') do copy "%%A" C:\destination
编辑:
对于文件名不需要findstr,所以我使用了您的初始dir搜索,并将其与for语句相结合。为我工作:
对于/f delims=%%A在“dir/s/b*development*.cpp”中,请复制%%A C:\destination
编辑2:
对,应该是这样,现在for语句以dir中的文件夹作为变量运行。注意:它确实会产生误报,您可以使用if-exists语句过滤掉这些误报,但我相信您可以自己进行实验:
for /f "tokens=*" %%D in ('dir /b /s /a:d "C:\source\*"') do copy %%D\development\*.cpp C:\destination
编辑3:
如果您想在神秘目录中找到几个.cpp:
for /f "tokens=*" %%D in ('dir /b /s /a:d "C:\source\*"') do (for /f "delims=" %%A in ('dir /s /b "%%D\development\*.cpp"') do copy "%%A" C:\destination)
我试图在名称中找到文件名,而不是在内容中。“findstr/i/M glossary*.txt”搜索此行中文件的内容,但在dir中用作参数时,它只搜索文件名。您可以始终清除词汇表部分,并使用*development*.txt?您能键入准确的新命令吗?findstr/i/m development.txt不起作用,它需要一个filename.dir/s/b development.cpp的参数来返回未找到的文件。dir/s/b development列出了包含开发的文件夹名称的完整路径。您是否已将批处理文件复制到要从中搜索的目录中,并输入了*development*。cpp我使用txt文件对此进行了测试,结果正常