PowerShell'de, kapsam oluşturma işleminin komut dosyalarındaki nesneleri (değişkenler, takma adlar, işlevler, vb.) Genel ortamı etkilememesi gerekir. Bu komut satırında iyi çalışıyor gibi görünüyor, ancak İMKB'de çalışmıyor.
İşte konsolda bir gösteri. $xGlobal kapsamda tanımlanmadığını kontrol ediyorum , içeriğini gösterip ScopeTest.ps1çalıştırıyorum ve son olarak $xtekrar tanımlanıp tanımlanmadığını kontrol ediyorum . Beklendiği gibi $x, yalnızca komut dosyası kapsamında oluşturulur ve kullanılır ve komut dosyası sona erdikten sonra genel ortamda devam etmez.

İMKB'de, komut dosyası konsol penceresi kullanılarak çağrılırsa, bu işe yaramaktadır.

Ancak, aslında "Komut Dosyasını Çalıştır" düğmesini veya F5'i kullanırsam, komut dosyasındaki değişkenler tamamlandıktan sonra da devam eder.

Komut dosyası temiz bir ortamdan başlayacağını varsayarsa, bu, yazma ve sorun giderme komut dosyalarını biraz zorlaştırabilir (örn: Komut dosyasında ayarlanan değişkenler zaten mevcut olmamalıdır.). İMKB neden böyle davranıyor?
Bir cevap bu soru söz sadece hafifçe konu üzerine dokunuşlar, "nokta-kaynak", ama burada daha kapsamlı bir açıklama umuyorum. Ayrıca, betiğin neden İMKB'de konsoldan farklı çalıştığına dair belgeler varsa, bir referans da iyi olur.