这是一个放在根目录下双击执行的批处理程序,根目录下有许多个文件夹,每个文件夹下有个“0”文件夹,“0”文件夹下最多有三个子文件夹“1”、“2”、“3”。现判断“0”文件夹下如果只有子文件夹“3”,那么就把子文件夹“3”下的所有文件移到“0”文件夹下,并删除子文件夹“3”。批处理代码如下:
for /d %%i in (*) do(
if not exist %%i\0\1(
if not exist %%i\0\2(
move %%i\0\3\* %%i\0
rd %%i\0\3
)
)
)
pause
哪位大神帮我看看吧,为嘛就不行呢?
@echo off & color 0d
if exist "0" (call :1) else (
echo 当前目录下不存在 0 文件夹! & ping 127.0.0.1 -n "3" & exit
)
:1
cls
if exist "0\3" (xcopy "0\3" "0\" /e /h) else (
echo 0 文件夹目录下不存在 3 文件夹分支!
)
pause>nul
::GAGATOSHUT团队追问
for %%a in (d) do (
for /f "delims=" %%b in ('dir/ad/s/b "%%a"^|findstr /i "\3$"') do (
xcopy "%%b" "%%a" /e /h
)
)
pause>nul
:: 把第二行括号里d改成你要搜索的上级目录,比如0的上一级,如果0在根目录下面,则直接改为盘符,则是c或者d或者e
::请采纳
if exist "0" (call :1) else (
echo 当前目录下不存在 0 文件夹! & ping 127.0.0.1 -n "3" & exit
)
:1
cls
if exist "0\3" (xcopy "0\3" "0\" /e /h) else (
echo 0 文件夹目录下不存在 3 文件夹分支!
)
pause>nul
::GAGATOSHUT团队追问
是根目录下有许多这样的文件夹,如何能对根目录下的所有文件夹执行这样的操作呢?
追答@echo off & color 0dfor %%a in (d) do (
for /f "delims=" %%b in ('dir/ad/s/b "%%a"^|findstr /i "\3$"') do (
xcopy "%%b" "%%a" /e /h
)
)
pause>nul
:: 把第二行括号里d改成你要搜索的上级目录,比如0的上一级,如果0在根目录下面,则直接改为盘符,则是c或者d或者e
::请采纳
温馨提示:答案为网友推荐,仅供参考