Rearrange array elements in cmd












2















I have an array in my batch file which looks like this:



"port[0] ="
"port[1] = 0"
"port[2] = 3"
"port[3] = 2"


Is there any nice and elegant way to move values one element back, so it'll look like this?:



"port[0] = 0"
"port[1] = 3"
"port[2] = 2"
"port[3] ="


I want something other than just SET port[0] = %port[1]%, etc?










share|improve this question




















  • 2





    don't put spaces around the equal sign...

    – npocmaka
    Nov 23 '18 at 21:48






  • 2





    %port[0]% would not exist because without a value it would be undefined. The same would also be true for %port[3]% after the modification.

    – Compo
    Nov 23 '18 at 21:59













  • guys thank you for pointing this out, but TBH i just showed this as an example, not the exact code =)

    – John Doe
    Nov 23 '18 at 22:02
















2















I have an array in my batch file which looks like this:



"port[0] ="
"port[1] = 0"
"port[2] = 3"
"port[3] = 2"


Is there any nice and elegant way to move values one element back, so it'll look like this?:



"port[0] = 0"
"port[1] = 3"
"port[2] = 2"
"port[3] ="


I want something other than just SET port[0] = %port[1]%, etc?










share|improve this question




















  • 2





    don't put spaces around the equal sign...

    – npocmaka
    Nov 23 '18 at 21:48






  • 2





    %port[0]% would not exist because without a value it would be undefined. The same would also be true for %port[3]% after the modification.

    – Compo
    Nov 23 '18 at 21:59













  • guys thank you for pointing this out, but TBH i just showed this as an example, not the exact code =)

    – John Doe
    Nov 23 '18 at 22:02














2












2








2








I have an array in my batch file which looks like this:



"port[0] ="
"port[1] = 0"
"port[2] = 3"
"port[3] = 2"


Is there any nice and elegant way to move values one element back, so it'll look like this?:



"port[0] = 0"
"port[1] = 3"
"port[2] = 2"
"port[3] ="


I want something other than just SET port[0] = %port[1]%, etc?










share|improve this question
















I have an array in my batch file which looks like this:



"port[0] ="
"port[1] = 0"
"port[2] = 3"
"port[3] = 2"


Is there any nice and elegant way to move values one element back, so it'll look like this?:



"port[0] = 0"
"port[1] = 3"
"port[2] = 2"
"port[3] ="


I want something other than just SET port[0] = %port[1]%, etc?







batch-file cmd






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 24 '18 at 12:40









double-beep

2,39641027




2,39641027










asked Nov 23 '18 at 21:39









John DoeJohn Doe

274




274








  • 2





    don't put spaces around the equal sign...

    – npocmaka
    Nov 23 '18 at 21:48






  • 2





    %port[0]% would not exist because without a value it would be undefined. The same would also be true for %port[3]% after the modification.

    – Compo
    Nov 23 '18 at 21:59













  • guys thank you for pointing this out, but TBH i just showed this as an example, not the exact code =)

    – John Doe
    Nov 23 '18 at 22:02














  • 2





    don't put spaces around the equal sign...

    – npocmaka
    Nov 23 '18 at 21:48






  • 2





    %port[0]% would not exist because without a value it would be undefined. The same would also be true for %port[3]% after the modification.

    – Compo
    Nov 23 '18 at 21:59













  • guys thank you for pointing this out, but TBH i just showed this as an example, not the exact code =)

    – John Doe
    Nov 23 '18 at 22:02








2




2





don't put spaces around the equal sign...

– npocmaka
Nov 23 '18 at 21:48





don't put spaces around the equal sign...

– npocmaka
Nov 23 '18 at 21:48




2




2





%port[0]% would not exist because without a value it would be undefined. The same would also be true for %port[3]% after the modification.

– Compo
Nov 23 '18 at 21:59







%port[0]% would not exist because without a value it would be undefined. The same would also be true for %port[3]% after the modification.

– Compo
Nov 23 '18 at 21:59















guys thank you for pointing this out, but TBH i just showed this as an example, not the exact code =)

– John Doe
Nov 23 '18 at 22:02





guys thank you for pointing this out, but TBH i just showed this as an example, not the exact code =)

– John Doe
Nov 23 '18 at 22:02












1 Answer
1






active

oldest

votes


















2














:: Q:Test20181123SO_53453204.cmd
@Echo off&SetLocal EnableDelayedExpansion
set "port[0]=" &Rem this clears/deletes the variable
set "port[1]=0"
set "port[2]=3"
set "port[3]=2"

For /L %%L in (1,1,3) do (
set /A "New=%%L-1,Last=%%L"
set "port[!New!]=!port[%%L]!"
)
:: finally reset the last entry
set "port[%Last%]="
set port[




> Q:Test20181123SO_53453204.cmd
port[0]=0
port[1]=3
port[2]=2





share|improve this answer
























  • Tracking of the last element in the loop: Last=%%L is redundant. The last element is predetermined.

    – sst
    Nov 24 '18 at 2:56











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53453204%2frearrange-array-elements-in-cmd%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














:: Q:Test20181123SO_53453204.cmd
@Echo off&SetLocal EnableDelayedExpansion
set "port[0]=" &Rem this clears/deletes the variable
set "port[1]=0"
set "port[2]=3"
set "port[3]=2"

For /L %%L in (1,1,3) do (
set /A "New=%%L-1,Last=%%L"
set "port[!New!]=!port[%%L]!"
)
:: finally reset the last entry
set "port[%Last%]="
set port[




> Q:Test20181123SO_53453204.cmd
port[0]=0
port[1]=3
port[2]=2





share|improve this answer
























  • Tracking of the last element in the loop: Last=%%L is redundant. The last element is predetermined.

    – sst
    Nov 24 '18 at 2:56
















2














:: Q:Test20181123SO_53453204.cmd
@Echo off&SetLocal EnableDelayedExpansion
set "port[0]=" &Rem this clears/deletes the variable
set "port[1]=0"
set "port[2]=3"
set "port[3]=2"

For /L %%L in (1,1,3) do (
set /A "New=%%L-1,Last=%%L"
set "port[!New!]=!port[%%L]!"
)
:: finally reset the last entry
set "port[%Last%]="
set port[




> Q:Test20181123SO_53453204.cmd
port[0]=0
port[1]=3
port[2]=2





share|improve this answer
























  • Tracking of the last element in the loop: Last=%%L is redundant. The last element is predetermined.

    – sst
    Nov 24 '18 at 2:56














2












2








2







:: Q:Test20181123SO_53453204.cmd
@Echo off&SetLocal EnableDelayedExpansion
set "port[0]=" &Rem this clears/deletes the variable
set "port[1]=0"
set "port[2]=3"
set "port[3]=2"

For /L %%L in (1,1,3) do (
set /A "New=%%L-1,Last=%%L"
set "port[!New!]=!port[%%L]!"
)
:: finally reset the last entry
set "port[%Last%]="
set port[




> Q:Test20181123SO_53453204.cmd
port[0]=0
port[1]=3
port[2]=2





share|improve this answer













:: Q:Test20181123SO_53453204.cmd
@Echo off&SetLocal EnableDelayedExpansion
set "port[0]=" &Rem this clears/deletes the variable
set "port[1]=0"
set "port[2]=3"
set "port[3]=2"

For /L %%L in (1,1,3) do (
set /A "New=%%L-1,Last=%%L"
set "port[!New!]=!port[%%L]!"
)
:: finally reset the last entry
set "port[%Last%]="
set port[




> Q:Test20181123SO_53453204.cmd
port[0]=0
port[1]=3
port[2]=2






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 23 '18 at 22:03









LotPingsLotPings

19.2k61532




19.2k61532













  • Tracking of the last element in the loop: Last=%%L is redundant. The last element is predetermined.

    – sst
    Nov 24 '18 at 2:56



















  • Tracking of the last element in the loop: Last=%%L is redundant. The last element is predetermined.

    – sst
    Nov 24 '18 at 2:56

















Tracking of the last element in the loop: Last=%%L is redundant. The last element is predetermined.

– sst
Nov 24 '18 at 2:56





Tracking of the last element in the loop: Last=%%L is redundant. The last element is predetermined.

– sst
Nov 24 '18 at 2:56




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53453204%2frearrange-array-elements-in-cmd%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Create new schema in PostgreSQL using DBeaver

Deepest pit of an array with Javascript: test on Codility

Fotorealismo