[英]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.