批处理将当前目录下的文件及文件夹复制到指定目录

如题,各位大神如何写一段批处理实现如下功能:
1、搜索包含指定关键字文件的目录
2、将当前文件夹下的文件和文件夹复制到上面目录里
3、如果已经存在的文件,直接覆盖

希望大佬们可以帮下忙~

1、在该文件夹下新建一个文本文档。

2、打开这个文本文档,输入以下命令:DIR *.* /B >list.txt。

3、文件另存。

4、修改后缀名为“.bat”,然后保存。

5、双击文件,运行。

6、出现了我们需要的文件名称列表。

7、打开之后,就能看到。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-18

如果您要扫描文件内容,批处理的效率就太低了。下面的批处理只能扫描文件名中含有关键字的情况,存为search_copy.bat,需要在当前目录下,用cmd命令行方式运行:

@for %%a in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
@if exist %%a:\. @for /f "delims=" %%i in ('dir %%a:\*%1* /s /b /a-d') do @set fd=%%~pi&goto C
)
:C
@xcopy . "%fd%" /e /r /y

按您说的逻辑,有可能找到的目标文件夹多余1个,该程序只向第一个找到的文件夹拷贝。

运行时,在目标目录下,输入:

search_copy.bat somefile

就可将当前目录下的文件和目录(含所有子目录)都拷贝到文件名中含有“somefile”的目录下。

追问

那如果我只要把当前目录下的文件夹和子文件夹复制到指定位置,这个怎么改

追答

直接在cmd下输入:
xcopy . 指定位置 /e /r /y
“指定位置”您自己输入就行了。比如d:\myfiles\

相似回答