Если я упростил свое требование, я хочу получить последние две цифры этих строк, используя командный файл.Это не точное требование.но я сделал это простым для понимания.:)
11-22-33
11-22-44
11-22-55
11-22-66
ожидаемый результат -
33
44
55
66
Это код, который я написал
@echo off
SetLocal EnableDelayedExpansion
REM Fill strings to a array
set DIR_COUNT=0
for %%x in ("11-22-33" "11-22-44" "11-22-55" "11-22-66") do (
set /A DIR_COUNT+=1
set CONTENT_DIR_NAME=%%~x
set "DIR_LIST[!DIR_COUNT!]=!CONTENT_DIR_NAME!"
)
REM This part is working when I hard code the index of array to 1. I placed this two lines for testing purpose of above code.
for %%a in (%DIR_LIST[1]:-= %) do set mfgName=%%a
echo %mfgName%
REM this loop doesn't work because the syntax not correct.
for /L %%i in (1,1,%DIR_COUNT%) do (
for %%a in (%!DIR_LIST[%%i]!:-= %) do (
set mfgName=%%a
echo !mfgName!
)
)
Поскольку мой синтаксис понимания (%!DIR_LIST[%%i]!:-= %)
неверен.Любые идеи, как DelayedExpansion внутри DelayedExpansion и исправить этот синтаксис