问题:如何通过bat命令实现“指定”文件夹及文件夹里面的文件复制到指定目录下

目标:将A文件夹下面所有以136.1994.G01.02.02为前缀的文件夹及其里面的文件全部复制到指定的文件夹B下面(包含用户输入指定内容,参数传递,模糊查询,要是有正则表达式验证用户输入内容格式就更好了)
具体流程:运行.bat文件,弹出命令行窗口,用户输入要复制的文件夹名字(注:只输入前缀,例如,文件夹A下面有多个以136.1994.G01.02.02为前缀的文件夹(文件夹全名如136.1994.G01.02.02-00000001,136.1994.G01.02.02-00000002,136.1997.G01.02.02-00000001,136.1997.G01.02.02-00000002),用户输入的内容通过模糊检索,将A下面以136.1994.G01.02.02为前缀的文件夹及其里面的文件全部复制到指定的文件夹B下面。

问题描述

将 目录A 的所有以 前缀B 开头的一级子文件夹,复制到 目录B。

一句命令版

cmd /K (cd /d "D:\目录A(示范,路径自行修改)" && for /F "delims=" %a in ('dir /ad /b "136.1994.G01.02.02(示范,前缀自行修改)*"') do (xcopy /Y /E /S "%~a\*" "D:\指定文件夹B(示范,路径自行修改)\%~a\"))

直接修改后在命令框粘贴即可运行。

……

bat版

@ echo off
set 目录A=D:\目录A(示范,路径自行修改)
set 目录B=D:\指定文件夹B(示范,路径自行修改)
set /p 前缀=指定文件夹前缀(示范,前缀自行修改)
rem 如果您需要手动输入,把set改成set /p即可
rem 如果您需要自动输入,把set /p改成set并设定默认值即可
cd /d "%目录A%" && for /F "delims=" %a in ('dir /ad /b "%前缀%*"') do (xcopy /Y /E /S "%~a\*" "%目录B%\%~a\")
cmd

上述命令保存为txt,修改扩展名为cmd,执行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-12
不知这个问题解决了吗?
相似回答