Çevre değişkenleri (Environment variables) , programların çalıştığı ortamı tanımlayan değişkenlerdir , mesela Programların işlevlerini yerine getirebilmesi için sorduğu şu sorulara cevap verir ; Beni
çalıştıran kullanıcı hesabının adı nedir? Geçerli çalışma dizinim nedir? Windows hangi dizinde yüklüdür? Geçici dosyalar bu bilgisayarda nerede saklanır? ... Çevre değişkenleri kavramı, Linux'dan OS X ten , Windows işletim sistemine kadar birçok işletim sisteminde mevcuttur. Prensip olarak, aynı şeyi ifade ederler, ancak bunların uygulanma biçimleri ve kullanılan biçimleri farklıdır.
Çevre değişkenleri dinamiktir çünkü her bilgisayar farklı bir kurulum ve tasarıma (çevreye) sahip olabilir , mesela Bende Windows "C:\" dizininde kurulu ise çalıştırdan aşağıdaki komutu verdiğimizde "C:\Windows" dizini açılacaktır.
%windir%
Oysa Üstteki aynı komut Windows işletim sistemi "D:\" dizininde kurulu birinde "D:\Windows" şeklinde açılacaktır. Bir script veya Program kodlarken bu değişkenler kodlayıcının işini oldukça kolaylaştırmaktadır bunun en somut örneğini Kullanıcı isminin geçtiği bir klasörde görebiliriz mesela aşağıdaki komutu çalıştırdığımda
%SYSTEMDRIVE%\Users\%USERNAME%
açtığı klasör yolu : "C:\Users\velociraptor" olacaktır kullanıcı ismi her bilgisyarda farklı olduğundan kod yazarken kullanıcı klasöründe işlem yaptırtacaksak çevre değişkenlerini kullanmamız gerekecektir.
Cmd çevre değişkenlerinin Powershelldeki karşılıkları
Windows PowerShell, görev otomasyonu ve yapılandırma yönetimi amacıyla Microsoft tarafından geliştirilen .NET framework tabanlı bir komut satırı aracıdır. Microsoft Powershelle oldukça önem veriyor hatta Komut istemi (Cmd) nin yerine kullanılması için planları var çünkü PowerShell, Komut İstemi'nden daha güçlü bir araçtır. Powershelli açmanın en kolay yolu çalıştırdan Powershell komutu vermektir.
Şimdi amacımız "%SYSTEMDRIVE%" klasörünün sürücü harfini öğrenmek olsun , hatırlarsak yazının başında ilk cümlemizde Environment variables ifadesini kullanmıştık Powershellde bunun kısaltması olarak "$env:" kullanılır dolayısı ile komutumuz $env:SystemDrive olacaktır , aşağıdaki resimde görüldüğü gibi çıktıyı C: olarak verdi
Aşağıda Çevre değişkenlerinden bazılarının Powersehll karşılıkları verilmiştir
%appdata% = "$env:appdata
%programfiles% = $env:programfiles
%temp% = $env:temp
%userprofile% = $env:userprofile
%windir% = $env:windir
$env:SystemDrive $env:appdata $env:programfiles $env:temp $env:userprofile $env:windir
Bir uygulama üzerinde tüm bu anlatılanları pekiştirirsek ; Bir powershell komutu ile sistemimizde çalışan bütün servislerin isimlerini bulalım , bunu aşağıdaki komut yardımı ile yaparız
Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object Name
Komut bize liste halinde isimleri verecektir.
Şimdi ise bu listeyi bir çıktı halinde Masaüstümüzde oluşturtalım bunun için orjinal koda aşağıdakini ilave etmemiz gerekir
Out-File $env:SystemDrive\Users\$env:UserName\Desktop\services_name.txt
Sayfa sonundaki linkte "servis_isimleri.ps1" i not defteri ile açıp içerisindeki kodu görebilirsiniz bu kodu alıp Yönetici yetkilerinde çalıştırılmış bir Powershell konsolundan uygularsanız masaüstünüzde tüm çalışan servis isimlerinin yeraldığı "services_name.txt" isminde bir .txt dosyası olacaktır.
Görüldüğü üzere Powershellde Çevre değişkeni diye tabir ettiğimiz Environment variables kullanımı zor değildir.
- PowerShell ile kayıt defteri (Registry) işlemleri Burada
- Microsoft Powershell sürümü nasıl güncellendir Burada
- Powershell Komutları ile bir aygıtı devre dışı bırakın Burada
Yorumunuz için ben teşekkür ederim.
ilk defa duydum . Çok değerli bilgiler teşekkürler.
20 yıldır bilişim sektöründeyim, ikinci mesleğimdir , Bilgisayar eğitimimi almanyada aldım. Selamlar
@velociraptor sitenizi yeni keşfettim. Güzel şeyler anlatıyorsunuz. Tam olarak uzmanlığınız, mesleğiniz ve tecrübeniz nedir merak ettim. Çok özel görmezseniz kısaca sizi nasıl tanıyabiliriz?
Sevgi (bilişim meraklısı, 25 yaş)
Teknik bir konu ama birçok kişinin şiine yarayacaktır diye düşünüyorum selamlar
çok güzel ipuçları elimden geldiğince bişeyler yapacam benim için faydalı bir konu olmuş. ELinize sağlık.