Komut: "SETLOCAL" açık Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. mevcut
Komut örnekleri "SETLOCAL"
Der
`SETLOCAL`Windows Komut İstemi'ndeki komut, ortam değişkenlerini bir toplu iş dosyasında yerel olarak ayarlamak için kullanılır. İşte nasıl kullanılacağına dair bazı örnekler
`SETLOCAL`:
Örnek 1: Yerel ortam değişkenini ayarlayın:
@ECHO OFF
SETLOCAL
SET YEREL_VARIABLE=İçindekiler
ECHO %YEREL_VARIABLE%
Açıklama: Bu örnekte ortam değişkeni
`YEREL_VARIABLE`yerel olarak sınırlı alan içinde (yoluyla)
`SETLOCAL`Ve
`ENDLOCAL`) ve yalnızca bu aralıkta kullanılabilir.
Örnek 2: Önceki duruma sıfırlama:
@ECHO OFF
SET GLOBALE_VARIABLE=Global_İçerik
SETLOCAL
SET YEREL_VARIABLE=Yerel içerik
ECHO Yerel Variable: %YEREL_VARIABLE%
ECHO Globale Variable: %GLOBALE_VARIABLE%
ENDLOCAL
ECHO Yerel Variable (yerel olarak sınırlı alanın dışında): %YEREL_VARIABLE%
Açıklama: Bu yerel ortam değişkenidir
`YEREL_VARIABLE`Yerel olarak sınırlı bir alanda kurulur ve kullanılır. Sonrasında
`ENDLOCAL`komut dosyası önceki durumuna döner ve yerel değişken artık yerel kapsamın dışında kullanılamaz.
Örnek 3: SETLOCAL'i iç içe yerleştirme:
@ECHO OFF
SETLOCAL
SET VARIABLE1=Değer1
ECHO İç alan: %VARIABLE1%
SETLOCAL
SET VARIABLE2=Değer2
ECHO Dış alan: %VARIABLE1%, %VARIABLE2%
ENDLOCAL
ECHO Yerel alanın dışında: %VARIABLE1%, %VARIABLE2%
Açıklama: Burası
`SETLOCAL`-Komut iki kez iç içe geçmiş. Değişken
`VARIABLE2`yalnızca iç lokalize alanda görünürken,
`VARIABLE1`dış ve iç alanlarda görülebilir.
Örnek 4: Gelişmiş ortam değişkeni işlemeyi etkinleştirme:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=İçindekiler
ECHO Gecikmeden Önce Expansion: %VARIABLE%
SET VARIABLE=Yeni içerik
ECHO Gecikmeden sonra Expansion: !VARIABLE!
Açıklama: Kullanarak
`ENABLEDELAYEDEXPANSION`ünlem işareti olan ortam değişkenleri olabilir mi
`!`yüzde işaretleri yerine
`%`Gecikmeli genişleme için kullanılır.
Ölmek
`SETLOCAL`ortam, değişkenlerin bir toplu iş dosyası için yerel olarak ayarlanmasına izin vererek, değişikliklerin yalnızca sınırlı bir alana uygulanmasını ve genel olarak betiğin tamamına uygulanmasını sağlar. Ortam değişkenlerinde yapılan değişikliklerin betiğin belirli bir bölümüyle sınırlı olmasını istiyorsanız bu özellikle kullanışlıdır.
"SETLOCAL" Microsoft Windows Yardımından Alıntı
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Bir toplu is dosyasindaki ortam degisikliklerinin
yerellestirmesine baslar.
SETLOCAL komutu kullanildiktan sonra yapilan ortam degisiklikleri
toplu is
dosyasinda yerel olarak geçerli olur. Önceki ayarlari geri
yüklemek için
ENDLOCAL komutu kullanilmalidir. Bir toplu komut dosyasinin
sonuna
erisildiginde, bu toplu komut dosyasinda kullanilan her SETLOCAL
komutu için
gösterilmeyen bir ENDLOCAL komutu yürütülür.
SETLOCAL
Komut Uzantilari etkinse, SETLOCAL asagidaki sekilde degisir:
SETLOCAL toplu is dosyasi komutu artik seçenege bagli
parametreleri
kabul ediyor:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
komut islemci uzantilarini etkinlestirin ya da devre
disi
birakin. Ayrinti için bkz. CMD /?.
ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION
geciken ortam degiskeni genislemesini etkinlestirin
ya da
devre disi birakin. Ayrinti için bkz. SET /?.
Bu degistirmeler, komutu,
SETLOCAL komutu öncesindeki ayarina bakmaksizin eslesen en son
ENDLOCAL
komutuna dek sürer.
SETLOCAL komutu, ERRORLEVEL degerini, bir parametre verildiyse
ayarlar. Geçerli iki parametreden biri verili digeri
verilmediyse
sonuç sifir olur. Bunu, toplu is dosyalari içinde
asagidaki teknigi kullanan uzantilarin hazir olup olmadigina
karar vermek için kullanabilirsiniz:
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo uzantilar etkinlestirilemiyor
Bunun çalisma nedeni, CMD.EXE, SETLOCAL eski sürümünün
ERRORLEVEL degerini ayarlamamasidir. Kötü parametreli VERIFY
komutu
ERRORLEVEL degerini sifir olmayan bir degere baslatir.
Önemli bilgiler, "SETLOCAL" komutu için ipuçları
Evet, bunu yaparken dikkate almanız gereken bazı önemli hususlar vardır.
`SETLOCAL`Windows komut isteminde veya toplu komut dosyalarında komut:
1.
Sınırlı kapsam: `SETLOCAL`ortam değişkenleri için sınırlı bir kapsam oluşturur. Bu kapsamdaki ortam değişkenlerinde yapılan değişiklikler genel ortamı veya diğer yerelleştirilmiş kapsamları etkilemez. Dikkat
`SETLOCAL`Ve
`ENDLOCAL`çiftler halinde kullanılmalıdır.
SETLOCAL
REM ... Burada ortam değişkenlerindeki değişiklikler yereldir
ENDLOCAL
2.
Yuvalama: Yapabilirsiniz
`SETLOCAL`birden çok yerelleştirilmiş alan oluşturmak için iç içe geçirin. Herkes
`SETLOCAL`ama uygun biriyle olmalı
`ENDLOCAL`feshedilecek.
SETLOCAL
REM İç yerelleştirilmiş alan
SETLOCAL
REM Daha da derin lokalize alan
ENDLOCAL
ENDLOCAL
3.
Gecikmeli Genişletme: Şunlarla yapabilirsiniz :
`SETLOCAL ENABLEDELAYEDEXPANSION`Gecikmeli genişletmeyi etkinleştirin. Değişken dahildir
`!`yerine
`%`kapalı. Tembel genişletme, değişkenlerin yalnızca toplu iş dosyası okunurken değil, çalışma zamanında değerlendirilmesine olanak tanır.
SETLOCAL ENABLEDELAYEDEXPANSION
SET VARIABLE=İçindekiler
ECHO Gecikmeden Önce Expansion: %VARIABLE%
SET VARIABLE=Yeni içerik
ECHO Gecikmeden sonra Expansion: !VARIABLE!
ENDLOCAL
4.
Küresel Ortam Değişkenleri: Belirli bir süre içinde ortam değişkenlerinde yapılan değişiklikler
`SETLOCAL`-scope, kapsam dışındaki genel ortam değişkenlerini etkilemez.
SET GLOBAL=Global_İçerik
SETLOCAL
SET GLOBAL=Yerel içerik
ECHO Yerel olarak sınırlı alan dahilinde: %GLOBAL%
ENDLOCAL
ECHO Yerel alanın dışında: %GLOBAL%
5.
Değişiklikleri geri alma: Yerelleştirilmiş bir alandaki değişiklikleri geri almak istiyorsanız, önceki duruma geri dönmeniz yeterlidir.
`SETLOCAL`senin tarafından geri döndüm
`ENDLOCAL`kullanmak.
SETLOCAL
REM Buradaki değişiklikler
ENDLOCAL
REM Değişiklikleri geri al
Bu önemli,
`SETLOCAL`Ve
`ENDLOCAL`ortam değişkenlerinin doğru şekilde sınırlandırılmasını ve beklenen etkilere sahip olmasını sağlamak için dikkatli ve ikili olarak kullanılmalıdır.