批处理 判断文件是否存在 执行相应操作

这是一个放在根目录下双击执行的批处理程序,根目录下有许多个文件夹,每个文件夹下有个“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团队

追问

是根目录下有许多这样的文件夹,如何能对根目录下的所有文件夹执行这样的操作呢?

追答@echo off & color 0d
  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
::请采纳

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网