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

提取当前目录及子目录下所有子文件到当前根目录,

在资源管理器搜索栏*.*也可以实现。

拷贝模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@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

剪切模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@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

(本篇结束)

许可协议:自由转载-保持署名-非商业性使用-禁止演绎 (CC BY-NC-ND 4.0)

By 小可 from https://xinlu.ink/tech/batch-in-action-9-extract-files-from-subfolders-into-the-main-folder.html