如何用bat批处理移动文件夹下所有内容至上一层?

比如我有个图一一样的文件夹语文下面有语文1,语文2和语文3,它们三个下面又有别的子文件夹和文件。现在我要把它们三个下面的所有内容移动到上一层,直接从属于语文文件夹,然后删掉它们三个。就像图二一样。怎么做到?注意,实际情况子文件夹的名字并不是有规律的。

第1个回答  2020-05-16
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的一级文件夹放一起运行
@echo off
rem 将二级文件夹里的文件和文件夹移动到上级目录下(上移一级)
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /ad/b') do (
for /f "delims=" %%b in ('dir /ad/b "%%a\" 2^>nul') do (
for /f "delims=" %%c in ('dir /b "%%a\%%~nxb\" 2^>nul') do (
if not exist "%%a\%%~nxc" (
echo;"%%a\%%~nxb\%%~nxc" --^> "%%a\%%~nxc"
move "%%a\%%~nxb\%%~nxc" "%%a\%%~nxc"
)
)
rd "%%a\%%~nxb\" 2>nul
)
)
echo;%#% +%$%%$%/%@% %z%
pause
exit本回答被网友采纳
第2个回答  2020-05-19
@echo off
for /f "tokens=*" %%i in ('dir/ad/b 语文*') do (
for /f "tokens=*" %%j in ('dir/ad/b "%%i\"') do (
move /y "%%i\%%j" "%%j"))
相似回答