Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule omówiono ograniczenie długości ciągów używanych w wierszu polecenia w wierszu polecenia (Cmd.exe). Udostępnia również metody, których można użyć do obejścia tego ograniczenia.
Dotyczy: Windows Server 2012 R2, Windows Server 2008 R2 z dodatkiem Service Pack 1, Windows 7 z dodatkiem Service Pack 1
Oryginalny numer KB: 830473
Więcej informacji
Maksymalna długość ciągu, którego można użyć w wierszu polecenia, wynosi 8191 znaków.
To ograniczenie dotyczy:
- wiersz polecenia
- poszczególne zmienne środowiskowe dziedziczone przez inne procesy, takie jak zmienna PATH
- wszystkie rozszerzenia zmiennych środowiskowych
Jeśli używasz wiersza polecenia do uruchamiania plików wsadowych, to ograniczenie dotyczy również przetwarzania plików wsadowych.
Przykłady
W poniższych przykładach pokazano, jak to ograniczenie dotyczy poleceń uruchamianych w wierszu polecenia oraz poleceń używanych w pliku wsadowym.
W wierszu polecenia łączna długość następującego wiersza polecenia nie może zawierać więcej niż 8191 znaków:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
W pliku wsadowym łączna długość następującego wiersza polecenia nie może zawierać więcej niż 8191 znaków:
cmd.exe /k ExecutableFile.exe parameter1, parameter2... parameterN
To ograniczenie dotyczy wierszy poleceń zawartych w plikach wsadowych podczas uruchamiania pliku wsadowego przy użyciu wiersza polecenia.
W wierszu polecenia łączna długość po rozwinięciu
EnvironmentVariable1
EnvironmentVariable2
iEnvironmentVariable3
nie może zawierać więcej niż 8191 znaków:c:> set EnvironmentVariable1 = EnvironmentVariable2 EnvironmentVariable3
W pliku wsadowym łączna długość następującego wiersza polecenia po rozwinięciu parametrów nie może zawierać więcej niż 8191 znaków:
ExecutableFile.exe parameter1 parameter2
Mimo że ograniczenie win32 zmiennych środowiskowych wynosi 32 767 znaków, wiersz polecenia ignoruje wszelkie zmienne środowiskowe dziedziczone z procesu nadrzędnego i są dłuższe niż własne ograniczenia 8191 znaków (odpowiednio do systemu operacyjnego). Aby uzyskać więcej informacji na temat
SetEnvironmentVariable
funkcji, zobacz SetEnvironmentVariableA, funkcja.
Jak obejść ograniczenie
Aby obejść ograniczenie, użyj co najmniej jednej z następujących metod, odpowiednio do twojej sytuacji:
Zmodyfikuj programy, które wymagają długich wierszy polecenia, tak aby używały pliku zawierającego informacje o parametrach, a następnie dołączyć nazwę pliku w wierszu polecenia.
Na przykład zamiast używać
ExecutableFile.exe Parameter1 Parameter2... ParameterN
wiersza polecenia w pliku wsadowym, zmodyfikuj program tak, aby używał wiersza polecenia podobnego do następującego wiersza polecenia, gdzie ParametrFile jest plikiem zawierającym wymagane parametry (parametr1 parametr2... ParametrN):ExecutableFile.exe c:\temp\ParameterFile.txt
Zmodyfikuj programy, które używają dużych zmiennych środowiskowych, tak aby zmienne środowiskowe zawierały mniej niż 8191 znaków.
Jeśli na przykład zmienna środowiskowa PATH zawiera więcej niż 8191 znaków, użyj co najmniej jednej z następujących metod, aby zmniejszyć liczbę znaków:
- Używaj krótszych nazw folderów i plików.
- Zmniejsz głębokość drzew folderów.
- Przechowuj pliki w mniejszej liczbie folderów, aby mniej folderów było wymaganych w zmiennej środowiskowej PATH.
- Zbadaj możliwe metody, których można użyć, aby zmniejszyć zależność ścieżki do lokalizowania plików .dll.