0

I have my array definition setup as such (trimmed down for example purposes):

FOR %%a IN (
        "Japan|JPGLPAL|JP10|inbox/JAPAN-PL|Japan-PL DLR"
        "Japan|JPGLBAL|JP10|inbox/JAPAN-BS|Japan-BS DLR"
        ) DO (
FOR /F "tokens=1-5 delims=|" %%A IN (%%a) DO (
    SET "STR[%%B].REGION=%%A"
    SET "STR[%%B].ENTITY=%%C"
    SET "STR[%%B].DM_INBOX=%%D"
    SET "STR[%%B].DM_DLR=%%E"

So then when I try to access the array from a variable I set within another for loop, it doesn't work obviously since I'm only using %% instead of !! on DATAFILENAME. How would I get this to work?

    FOR %%a IN ("%FDMEE_BIN_TEMP%*") DO (
        SET "DATAFILENAME=%%~nxa"
        ECHO Data File  :  %%~nxa
        ECHO Region     :  !STR[%DATAFILENAME:~0,7%].REGION!
        ECHO Entity     :  !STR[%DATAFILENAME:~0,7%].ENTITY!
        ECHO DM Inbox   :  !STR[%DATAFILENAME:~0,7%].DM_INBOX!
        ECHO DM DLR     :  !STR[%DATAFILENAME:~0,7%].DM_DLR!
        ECHO Start POV  :  %STARTPOV% 
        ECHO End POV    :  %ENDPOV%
        ECHO. & ECHO.
    )

I don't think it's possible but can string manipulation be done on %%~nxa without setting it as a variable first? maybe that would work?

Thank you!

0

1 Answer 1

2

You are right, string manipulations aren't possible on FOR meta-variables.

To solve your problem, you need an intermediate FOR variable.

FOR %%a IN ("%FDMEE_BIN_TEMP%*") DO (
    SET "DATAFILENAME=%%~nxa"
    ECHO Data File  :  %%~nxa
    for %%P in ("!DATAFILENAME:~0,7!") DO (
      ECHO Region     :  !STR[%%P].REGION!
      ECHO Entity     :  !STR[%%P].ENTITY!
      ECHO DM Inbox   :  !STR[%%P].DM_INBOX!
      ECHO DM DLR     :  !STR[%%P].DM_DLR!
    )
Sign up to request clarification or add additional context in comments.

1 Comment

Jeb, this was the ticket!! Thank you so much for a quick answer. I've updated my process to accomodate the new process.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.