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

这是一个放在根目录下双击执行的批处理程序,根目录下有许多个文件夹,每个文件夹下有个“0”文件夹,“0”文件夹下最多有三个子文件夹“1”、“2”、“3”。现判断“0”文件夹... 这是一个放在根目录下双击执行的批处理程序,根目录下有许多个文件夹,每个文件夹下有个“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
哪位大神帮我看看吧,为嘛就不行呢?
展开
 我来答
GAGATOSHUT
2015-01-19 · TA获得超过3460个赞
知道小有建树答主
回答量:645
采纳率:50%
帮助的人:255万
展开全部
@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
::请采纳
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式