需要帮助以使用批删除和重命名目录集

时间:2013-12-13 10:41:09

标签: batch-file

我是批量编程的新手。 我尝试了下面的逻辑,它会检查是否存在Junk_old,如果是 - 它将删除目录,否则它会将Junk重命名为Junk_old。

IF EXIST "E:\Users\Junk_old" ( rd /s /q "E:\Users\Junk_old" ) else (MOVE /Y "E:\Users\Junk" "E:\Users\Junk_old")

我需要帮助对给定路径中的目录集做同样的事情。

先谢谢

1 个答案:

答案 0 :(得分:0)

除非存在新版本的目录,否则不会删除_old目录。

如果输出到控制台是正确的,请从echormdir行中删除ren命令

@echo off
    rem Prepare environment
    setlocal enableextensions

    rem Configure paths
    set "root=d:\temp"

    rem For each directory in root that has no "_old" suffix    
    for /f "tokens=*" %%d in ('dir /ad /b "%root%" ^| findstr /v /e "_old"') do (
        rem If there is an _old version of the directory, remove it
        if exist "%root%\%%~d_old" (
            echo rmdir /s /q "%root%\%%~d_old" 
        )
        rem If there is no _old version of the directory, rename it
        if not exist "%root%\%%~d_old" (
            echo ren "%root%\%%~d" "%%~d_old" 
        )
    )

    rem Clean
    endlocal