Kayıt defteri değerlerini yorumlamak için PowerShell kullanın


2

Örnek olarak aşağıdaki anahtarı düşünün

HKEY_CLASSES_ROOT\txtfile\shell\open\command

ve (Default)değeri

%SystemRoot%\system32\NOTEPAD.EXE %1

Bu değer bir .txtdosyaya çift ​​tıkladığınızda ne olacağını belirler . %SystemRoot%ve %1tarafından yorumlanabilen değişkenlerdir cmd.exe. PowerShell'deki eşdeğer bir komut şöyle görünür

$env:SystemRoot\system32\NOTEPAD.EXE $args[0]

Bununla birlikte, kayıt defteri değerini Powershell eşdeğerine ayarlarsanız, yalnızca bir hata oluşturacaktır, çünkü cmd.exeyorumlamaya çalışır ve PowerShell'i değil. Windows, PowerShell'in tercüman olmasına izin verecek şekilde ayarlanabilir cmd.exemi?

Yanıtlar:


3

Hayır, Windows'u kayıt defterinde PowerShell stil değişkenlerini kullanacak şekilde ayarlayamazsınız. Bunu yapmak cmd.exe, ortam değişkenlerini genişletebilen tek uygulama olmadığından birçok uygulama için kırıcı bir değişiklik olacaktır .

Örneğin, .NET ile ortam değişkenlerini genişletebilirsiniz:

[Environment]::ExpandEnvironmentVariables('%SystemRoot%\system32\NOTEPAD.EXE %1')

Giriş dizininizi açmak için %HOME%runong ( Win+R) veya Windows Gezgini adres çubuğuna da girebilirsiniz . Bunların hiçbiri cmd.exedeğişkenleri genişletmek için kullanmaz .

3. parti uygulamalar da dizeleri kendileri ayrıştırabilir ve kayıt defterindeki değerleri arayabilirler. Microsoft'un geriye dönük uyumluluk endişesi nedeniyle, Windows'un ortam değişkenlerinin kayıt defterinde saklanma biçimini değiştireceğinden şüpheliyim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.