Komut istemi (Cmd. exe) komut satırı dizesi sınırlaması

Bu makalede, Komut İstemi'ndeki (Cmd.exe) komut isteminden kullandığınız dizelerin uzunluğuyla ilgili sınırlama açıklanır. Ayrıca bu sınırlamayı geçici olarak çözmek için kullanabileceğiniz yöntemler de sağlar.

Şunlar için geçerlidir: Windows Server 2012 R2, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1
Özgün KB numarası: 830473

Daha fazla bilgi

Komut isteminde kullanabileceğiniz dize uzunluğu üst sınırı 8191 karakterdir.

Bu sınırlama şunlar için geçerlidir:

  • komut satırı
  • PATH değişkeni gibi diğer işlemler tarafından devralınan bağımsız ortam değişkenleri
  • tüm ortam değişkeni genişletmeleri

Toplu iş dosyalarını çalıştırmak için Komut İstemi'ni kullanırsanız, bu sınırlama toplu iş dosyası işleme için de geçerlidir.

Örnekler

Aşağıdaki örneklerde, bu sınırlamanın Komut İstemi'nde çalıştırdığınız komutlar ve toplu iş dosyasında kullandığınız komutlar için nasıl geçerli olduğu gösterilmiştir.

  • Komut İstemi'nde, aşağıdaki komut satırının toplam uzunluğu 8191 karakterden fazla olamaz:

    cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
    
  • Toplu iş dosyasında, aşağıdaki komut satırının toplam uzunluğu 8191 karakterden fazla olamaz:

    cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
    

    Bu sınırlama, toplu iş dosyasını çalıştırmak için Komut İstemi'ni kullandığınızda toplu iş dosyalarında yer alan komut satırları için geçerlidir.

  • Komut İstemi'nde, genişlettikten EnvironmentVariable2EnvironmentVariable3 sonra toplam uzunluğu EnvironmentVariable1 8191 karakterden fazla olamaz:

    c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
    
  • Toplu iş dosyasında, parametreleri genişlettikten sonra aşağıdaki komut satırının toplam uzunluğu 8191 karakterden fazla olamaz:

    ExecutableFile.exe parameter1 parameter2
    
  • Ortam değişkenleri için Win32 sınırlaması 32.767 karakter olsa da, Komut İstemi üst işlemden devralınan ve kendi 8191 karakterlik sınırlamalarından (işletim sistemine uygun olarak) daha uzun olan ortam değişkenlerini yoksayar. İşlev hakkında SetEnvironmentVariable daha fazla bilgi için bkz. SetEnvironmentVariableA işlevi.

Sınırlamayı geçici olarak çözmek için

Sınırlamayı geçici olarak çözmek için aşağıdaki yöntemlerden bir veya daha fazlasını sizin durumunuz için uygun şekilde kullanın:

  • Uzun komut satırları gerektiren programları değiştirerek parametre bilgilerini içeren bir dosya kullanmalarını ve ardından dosyanın adını komut satırına eklemelerini sağlayın.

    Örneğin, komut satırını bir toplu iş dosyasında kullanmak ExecutableFile.exe Parameter1 Parameter2... ParameterN yerine, programı aşağıdaki komut satırına benzer bir komut satırı kullanacak şekilde değiştirin; burada ParameterFile gerekli parametreleri içeren bir dosyadır (parametre1 parametre2... ParametreN:

    ExecutableFile.exe c:\temp\ParameterFile.txt
    
  • Ortam değişkenlerinin 8191 karakterden az içermesi için büyük ortam değişkenleri kullanan programları değiştirin.

    Örneğin, PATH ortam değişkeni 8191'den fazla karakter içeriyorsa, karakter sayısını azaltmak için aşağıdaki yöntemlerden birini veya daha fazlasını kullanın:

    • Klasörler ve dosyalar için daha kısa adlar kullanın.
    • Klasör ağaçlarının derinliğini azaltın.
    • PATH ortam değişkeninde daha az klasör gerekmesi için dosyaları daha az klasöre depolayın.
    • .dll dosyalarını bulmak için PATH bağımlılığını azaltmak için kullanabileceğiniz olası yöntemleri araştırın.