Bir ortam değişkeninin tanımlanıp tanımlanmadığını belirlemek için bir cmd.exe komut satırı kullanmam gerekiyor (cmd.exe gyp derleme aracından çağrılıyor). Bunu nasıl yapabilirim? Değişken değerinin tek veya çift tırnak içermediğini, ancak komut uzantılarının etkinleştirildiğini varsayamam. ,Bir ortam değişkeni komut uzantıları olmadan ve bir toplu iş dosyası kullanmadan tanımlanmış mı kontrol edin?
IF "%UNDEFINED%" == "" (echo yes)
o tam çizgi bir .bat dosyası ve idam içinde:
bir .bat dosyası inşaat büyük aşağıdakileri, denedim ama doğrudan komut satırına yazdığınız başarısız olduğunda Çıktı olarak yes
'u görüyorum. Komut satırına yazdığımda çıktı boş. Windows XP SP3'te bunu test ediyorum, ancak iş arkadaşım Windows 7'de de aynı sonuçları görüyor. Bu, http://support.microsoft.com/kb/121170 ve http://www.robvanderwoude.com/battech_defined.php tarafından önerilen yöntemdir. Ben IF DEFINED UNDEFINED (echo yes)
kullanmak istemiyorum, çünkü bu komut uzantıları devre dışı bırakıldı.
Aşağıdaki gönderide en çok okunan yanıt, bu sorunun, "CmdLineParser" ve "BatchLineParser" yazılımında yüzde-genişlemenin farklı şekilde nasıl ele alındığına bağlı olduğuna inanmamı sağladı, ancak yine de bir çözüm: How does the Windows Command Interpreter (CMD.EXE) parse scripts?
Komut satırında, bir değişkenin tanımlanıp tanımlanmadığını kontrol etmek için 'SET' komutunu kullanabilirsiniz. – RBarryYoung
Bunu koşullu bir kontrolde nasıl kullanırım? Denedim: “Eğer (UNDEFINED) (yankı evet)” (yankı evet) ve “UNDEFINED” bu sefer beklenmedikti.' – Johann
Neden IF'yi komut satırında kullanmanız gerekiyor? Sadece ona bak ve uygun eylemi yap. – RBarryYoung