Windows'ta tek bir komut için ortam değişkenlerini nasıl ayarlarsınız? [çiftleme]


22

ENVVAR=abc commandUnix gibi Windows'ta tek bir komut için ortam değişkenleri ayarlamanın bir yolu var mı ?

setWindows'ta komut tarafından ayarlanan değişkenler aşağıdaki komutlar için kalır gibi görünüyor, ancak istediğim bu değil.


Bence onları kendi başınıza düzeltmeniz gerekecek.
Zina

Yanıtlar:


29

Tek bir komut için ortam değişkenlerini ayarlamanın bir yolu var mı?

Mevcut cmdkabuktan:

Değişkeni kendiniz temizlemelisiniz.

set ENVVAR=abc && dir & set ENVVAR=

Bir toplu iş dosyasından:

Sen kullanabilirsiniz setlocalve endlocal.

@echo off
setlocal 
  set ENVVAR=abc && dir
endlocal

Bir çocuk cmdkabuğu kullanın :

cmd /cBir alt kabuk oluşturmak için kullanabilirsiniz .

Değişken alt kabukta ayarlanır ve üst kabuğu etkilemez ( jpmc26 tarafından yapılan bir açıklamada belirtildiği gibi ).

cmd /C "set ENVVAR=abc && dir"

Daha fazla okuma

  • Windows CMD komut satırının AZ Dizini - Windows cmd satırıyla ilgili her şey için mükemmel bir referans.
  • cmd - Yeni bir CMD kabuğu başlatın ve (isteğe bağlı olarak) bir komut / yürütülebilir program çalıştırın.
  • endlocal - Bir toplu iş dosyasındaki ortam değişikliklerinin yerelleştirilmesini sonlandırır . Değişkenleri bir toplu iş dosyasından diğerine aktarın.
  • yönlendirme - Yönlendirme işleçleri.
  • set - CMD ortam değişkenlerini görüntüleyin, ayarlayın veya kaldırın. SET ile yapılan değişiklikler sadece geçerli CMD oturumu süresince kalacaktır.
  • setlocal - Bir toplu iş dosyasındaki ortam değişkenlerinin görünürlüğünü denetlemek için seçenekleri ayarlayın.

Başka bir seçenek de ayrı bir cmdişlem başlatmak ve bunları oraya ayarlamaktır. Ör cmd /C "set ENVVAR=abc && dir". Ana süreci etkilemeyeceğinden, çıkışta etkin bir şekilde "silinecektir".
jpmc26

@ jpmc26 İyi biri. Teşekkürler. Cevaplamak için eklendi.
DavidPostill

Komut başarısız olursa, ilk yöntem değişkeni temizlemez.
kimse

@AndrewMedico Teşekkürler. İyi bir nokta. Yanıt düzeltildi.
DavidPostill
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.