-replace
işleci veya Replace()
yöntemini kullanırken Powershell tarafından kaç tane değişiklik yapıldığını bilmem gerekiyor. Ya da eğer mümkün değilse, herhangi bir değişiklik yaptıysa. ÖrneğinPowershell, kaç tane değişiklik yaptınız?
, Perl, ikame işlemi yapılabilir değiştirmeleri sayısını verir, çünkü, ve sıfır olmayan bir sıfır boolean bağlamında doğru ise yanlış bir yazabilir:
$greeting = "Hello, Earthlings";
if ($greeting ~= s/Earthlings/Martians/) { print "Mars greeting ready." }
Ancak Powershell ile operatör ve yöntem yeni dizgiyi döndürür. Operatörün, nasıl sorulacağını bilen (örneğin, yakalanan gruplar geçerli kapsamda oluşturduğu yeni bir değişkende saklanır) bazı ek bilgiler sağladığını, ancak nasıl bir sayı alacağımı ya da başarı değeri.
Sadece önceki ve sonraki değerleri karşılaştırabilirdim, ancak bu tamamen verimsiz gibi görünüyor.
Büyük bir çözüm! –
Bu benim için PS 3/Windows 8'de çalışmaz. Değiştirme işlemi, ancak $ sayısı 0'dır. Ancak, PS 2 öykünmesinde çalıştığımda çalışır (powershell -version 2 aracılığıyla). – bart
Bunun Windows Management Framework 3 sürüm notlarında belgelenen bir değişiklik nedeniyle olduğunu öğrendim: "Komut dosyaları kendi kapsamlarında çalıştırılan komut dosyaları olarak çalıştırılır". $ Count global yapmak problemi çözüyor. – bart