Dela via


Setlocal

Startar lokalisering av miljövariabler i en batchfil. Lokaliseringen fortsätter tills ett matchande slutlokalt kommando påträffas eller slutet av batchfilen har nåtts.

Syntax

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

Parameterar

Parameter Beskrivning
AktiveraExtensions Aktiverar kommandotilläggen tills det matchande kommandot endlocal påträffas, oavsett inställningen innan kommandot setlocal kördes.
inaktivera förlängningar Inaktiverar kommandotilläggen tills det matchande kommandot endlocal påträffas, oavsett inställningen innan kommandot setlocal kördes.
MöjliggörFördröjd expansion Aktiverar den fördröjda miljövariabelexpansionen tills det matchande kommandot endlocal påträffas, oavsett inställningen innan kommandot setlocal kördes.
InaktiveraFördröjd expansion Inaktiverar den fördröjda miljövariabelexpansionen tills det matchande kommandot endlocal påträffas, oavsett inställningen innan kommandot setlocal kördes.
/? Visar hjälp i kommandotolken.

Anmärkningar

  • Om du använder setlocal utanför ett skript eller en batchfil har det ingen effekt.

  • Använd setlocal för att ändra miljövariabler när du kör en batchfil. Miljöändringar som görs när du har kört setlocal är lokala för batchfilen. Det Cmd.exe programmet återställer tidigare inställningar när det stöter på ett slutlokalt kommando eller når slutet av batchfilen.

  • Du kan ha mer än en setlocal eller kommando i ett batchprogram (det vill: kapslade kommandon).

  • Kommandot setlocal anger variabeln ERRORLEVEL. Om du skickar {enableextensions | disableextensions} eller {enabledelayedexpansion | disabledelayedexpansion}, är ERRORLEVEL-variabeln inställd på 0 (noll). Annars är den inställd på 1. Du kan använda den här informationen i batchskript för att avgöra om tilläggen är tillgängliga, som du ser i följande exempel:

    verify other 2>nul
    setlocal enableextensions
    if errorlevel 1 echo Unable to enable extensions
    

    Eftersom cmd inte anger ERRORLEVEL-variabeln när kommandotillägg är inaktiverade initierar kommandot ERRORLEVEL-variabeln till ett värde som inte är noll när du använder det med ett ogiltigt argument. Om du använder kommandot setlocal med argumenten {enableextensions | disableextensions} eller {enabledelayedexpansion | disabledelayedexpansion} och inte anger ERRORLEVEL-variabeln till 1är inte kommandotillägg tillgängliga.

Exempel

Om du vill lokalisera miljövariabler i en batchfil följer du det här exempelskriptet:

rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out