我是批量编程的新手。 我尝试了下面的逻辑,它会检查是否存在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")
我需要帮助对给定路径中的目录集做同样的事情。
先谢谢
答案 0 :(得分:0)
除非存在新版本的目录,否则不会删除_old
目录。
如果输出到控制台是正确的,请从echo
和rmdir
行中删除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