批处理 提取子目录下所有文件到当前目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理 提取子目录下所有文件到当前目录相关的知识,希望对你有一定的参考价值。

天空一滴云,你好,思路是这样的,遍历A目录下所有的文件夹,用move命令将文件夹里的文件都移动到A文件夹内,这个
批处理
放在和A同级目录,然后执行就可以了
rem
移动文件
for
/f
"tokens=*
delims="
%%n
in
('dir
"A"
/b/ad')
do
(
for
/f
"tokens=*
delims="
%%a
in
('dir
"%%n"')
do
(
move
"%%a"
"A"
)
)
rem
删除空目录
for
/f
"tokens=*
delims="
%%n
in
('dir
"A"
/b/ad')
do
(
rd
"%%n"
)
参考技术A for
/f
"delims="
%%i
in
('dir
/b
/a-d
/s
"*.rar"')
do
"c:\program
files\winrar\rar"
d
"%%i"
1.txt
b\2.txt
下面是删除压缩文件根目录下1.txt和所有子目录中2.txt,也就是说压缩文件中存在b\b\b\2.txt也会删除
for
/f
"delims="
%%i
in
('dir
/b
/a-d
/s
"*.rar"')
do
"c:\program
files\winrar\rar"
d
"%%i"
1.txt
*\2.txt
下面是删除压缩文件根目录下1.txt和所所有一级子目录中2.txt,也就是说压缩文件中存在b\b\b\2.txt则会保留
for
/f
"delims="
%%i
in
('dir
/b
/a-d
/s
"*.rar"')
do
"c:\program
files\winrar\rar"
d
"%%i"
1.txt
?\2.txt

批处理系列 - 提取所有子目录文件(拷贝/剪切)

结合本系列文章第一篇,看本文。

应用场景:提取当前目录下所有子文件。

拷贝模式

@Echo Off
SETLOCAL ENABLEDELAYEDEXPANSION
title 提取所有子目录文件  by:小可(xianghongai@gmail.com)

:GTBegin
@echo 将以 复制 方式提取所有子目录文件,确定继续?(y/n)
set /p GTConfirm=
if "%GTConfirm%"=="y" goto GTYES
if "%GTConfirm%"=="Y" goto GTYES
if "%GTConfirm%"=="n" goto GTNO
if "%GTConfirm%"=="N" goto GTNO
echo 请输入正确的指令
pause >nul
goto GTBegin

:GTYES
for /f "delims=" %%a in (\'dir /b/s/a-d\') do copy /-y "%%a" "%~dp0%%~nxa"
echo. :) 搞定
pause >nul
exit

:GTNO
exit


剪切模式

@Echo Off
SETLOCAL ENABLEDELAYEDEXPANSION
title 提取所有子目录文件  by:小可(xianghongai@gmail.com)

:GTBegin
@echo 将以 剪切 方式提取所有子目录文件,确定继续?(y/n)
set /p GTConfirm=
if "%GTConfirm%"=="y" goto GTYES
if "%GTConfirm%"=="Y" goto GTYES
if "%GTConfirm%"=="n" goto GTNO
if "%GTConfirm%"=="N" goto GTNO
echo 请输入正确的指令
pause >nul
goto GTBegin

:GTYES
for /f "delims=" %%a in (\'dir /b/s/a-d\') do move /-y "%%a" "%~dp0%%~nxa"
echo. :) 搞定
pause >nul
exit

:GTNO
exit



转载保留原文地址和作者名,只为错误勘正和信息补充。
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

以上是关于批处理 提取子目录下所有文件到当前目录的主要内容,如果未能解决你的问题,请参考以下文章

批处理系列 - 提取所有子目录文件(拷贝/剪切)

bat怎么批量复制当前目录下若干指定文件到指定目录

#### 批处理命令 获取当前目录下所有文件的路径

批处理删除当前文件夹下所有指定类型文件(包括子目录)

提取一个目录下的文件夹的名字

批处理:清空当前目录下所有txt文件内容