Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8951321
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T13:38:10+00:00 2026-06-15T13:38:10+00:00

It seems that since I use SET to declare my variables in batch script,

  • 0

It seems that since I use SET to declare my variables in batch script, if I run it multiple times in cmd, the variable value will persist unless I explicitly reset them.

Do I have to use setlocal and endlocal to make sure the variables from one run doesn’t persist over to another, without shutting down the CMD?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T13:38:11+00:00Added an answer on June 15, 2026 at 1:38 pm

    Yes, you should use SETLOCAL. That will localize any changes such that the old environment will be restored once ENDLOCAL is issued.

    When all script processing finishes and you are returned to a command line context, there is an implicit ENDLOCAL issued for every active SETLOCAL. There is no need to explicitly issue ENDLOCAL.

    Also, if your script (or routine) is CALLed, then when the CALL completes there is an implicit ENDLOCAL for every active SETLOCAL that was issued within the CALLed routine. No need to put ENDLOCAL at end of a routine, (though it doesn’t hurt)

    For example

    @echo off
    set var=pre-CALL value
    echo var=%var%
    call :test
    echo var=%var%
    exit /b
    
    :test
    setlocal
    set var=within CALL value
    echo var=%var%
    exit /b
    

    output:

    var=pre-CALL value
    var=within CALL value
    var=pre-CALL value
    

    ENDLOCAL within a CALLed routine will never rollback a SETLOCAL that was issued before the CALL. For example.

    @echo off
    setlocal
    set var=VALUE 1
    setlocal
    set var=VALUE 2
    echo before call: var=%var%
    call :test
    echo after call: var=%var%
    endlocal
    echo after endlocal: var=%var%
    exit /b
    
    :test
    setlocal
    set var=VALUE 3
    echo within local CALL context: var=%var%
    endlocal
    echo within CALL after 1st endlocal: var=%var%
    endlocal
    echo within CALL cannot endlocal to before CALL state: var=%var%
    exit /b
    

    Result:

    before call: var=VALUE 2
    within local CALL context: var=VALUE 3
    within CALL after 1st endlocal: var=VALUE 2
    within CALL cannot endlocal to before CALL state: var=VALUE 2
    after call: var=VALUE 2
    after endlocal: var=VALUE 1
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

It seems that we can show layers and even use a different zPosition for
It seems that it is not advisable to use <meta http-equiv=REFRESH CONTENT=3;url=url> for redirects
I have some object classes that use inheritance. It seems that I can only
All source files seem to have compiled fine. However, since I achieved that, I
Seems that This will be an easy question for you but this problem is
Seems that even after unchecking the option in the PyDev/Debug preferenecs pane to launch
It seems that runClasses() doesn't terminate the code being tested even after the test
It seems that JavaScript's Date() function can only return local date and time. Is
It seems that often I find that my code when moving either from one
It seems that there is a implementation of rope in my /usr/include/c++/4.5.1/ext/rope (and ropeimpl.h

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.