簡體   English   中英

批處理腳本循環刪除目錄

[英]Batch script removing directory in loop

我必須刪除自動創建的目錄。 每個目錄的名稱都具有相同的前綴和內部版本號。 腳本應采用參數,並刪除整個目錄中包含小於參數或等於參數的數字。 我已經寫過類似的東西,但是沒有用。 我的腳本僅刪除第一個目錄。

@echo Off
G:
cd G:\UAT

setlocal EnableDelayedExpansion 

for /D %%i in (buildnr_*) do (
set dirName=%%i
set dirNumber=!dirName:~8,5!
    if !dirNumber! LEQ %1 (
        rimraf buildnr_!dirNumber!
        echo "----------------buildnr_!dirNumber! has been removed.----------------"
    )
)

這樣的方法可能適合您:

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
If "%~1"=="" Exit /B
CD /D "G:\UAT" 2>Nul || Exit /B
RD "empty" 2>Nul
MD "empty"
For /D %%A In ("buildnr_*") Do (
    Set "bn=%%A"
    SetLocal EnableDelayedExpansion
    If !bn:~-5! LEq %~1 (
        RoboCopy /MIR "empty" "%%A" >Nul 2>&1
        RD "%%A" && (
            Echo "--------------- %%A has been removed. ---------------"
        )
    )
    EndLocal
)
RD "empty"

我已經檢查了輸入參數%1已傳遞到腳本,這一點很重要,您有責任驗證其內容是正確的格式/長度/字符串類型(特別注意LEq條件)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM