variable de entorno path

15/01/2004 - 11:06 por jlhortal | Informe spam
En la ayuda de Windows XP Profesional, introduccion a la
shell de comandos, se dice que la longitud máxima de
cualquier variable de entorno es de 8192 bytes. En mi
ordenador la variable PATH se trunca después de 1024

Es esto correcto ?

Hay alguna forma de superar esta limitación ?

Gracias..

Preguntas similare

Leer las respuestas

#11 JM Tella Llop [MVP Windows] ·
15/01/2004 - 18:37 | Informe spam
Y no encuentro nada

Paso a reportarlo como BUG. pero no tendrá arreglo como minimo hasta el SP3.

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"JM Tella Llop [MVP Windows] ·" wrote in message news:
efectivamente. Me pasa, y con XP en inglés y ademas incluso con el SP2.

Y la documentacion está clara:

The maximum individual environment variable size is 8192bytes.



Voy a ver si localizo en el KB de MS y te comento... (y desde luego, lo reporto como "bug")

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"JM Tella Llop [MVP Windows] ·" wrote in message news:
dejame un rato que lo pruebo

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"jlhortal" wrote in message news:00e901c3db8b$cad2b710$
bueno no sólo eso, porque como ya te digo realmente tengo
definido el path a base de otras variables para que no
supere los 1024, pero tanto al arrancar cmd como al
ejecutar tareas y expandirse el path, éste queda truncado
en 1024
Puedier ser un problema entonces del buffer que tiene la


parte grafica de configuracion de variables de
entorno ¿no?

Te refieres a eso..

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de


ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and


confers no rights.
You assume all risk for your use.


"jlhortal" wrote


in message news:01ad01c3db89$a76718e0$
Mi anterior respuesta no es del todo correcta...
Efectivamente al hacer "set" también tengo el path con


más
de 1024 bytes, pero después de hacer set path= dentro del
shell de comandos.
El problema es entonces que al expandir el path definido
dentro de panel control, sistema, variables de entorno,
cuando arranca el shell, deja truncada path.
Tengo definida Path a través de otras variables, porque
si no en el panel de control tampoco me dejaba pasar de
1024

he ejecutado esto:

set path=%path%;%path%;%path%;%path%;%path%;%path%;%


path%;%path%;%path%;%path%;%path%;

para probar, el el path me lo ha dado mostruoso: sin


limitacion aparente:

echo %path%

K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\
WINDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\Common Fi
les\Sonic Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program
Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Server\80\To
ols\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Progra
m Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\S
ystem32\Wbem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic
Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Ex
ecutive Software\Diskeeper\;K:\Program Files\Microsoft


SQL Server\80\Tools\BINN;
K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program Files\W
indows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sys


t
em32\W
bem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic Shared;K
:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Executive S
oftware\Diskeeper\;K:\Program Files\Microsoft SQL


Server\80\Tools\BINN;K:\PROGRA
~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program
Files\Windows Re
source


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sys


t
em32\Wbem;K:\Pr
ogram Files\Support Tools\;K:\Program Files\Common


Files\Sonic Shared;K:\Program
Files\Common Files\Roxio Shared\DLLShared;K:\Program


Files\Executive Software\D
iskeeper\;K:\Program Files\Microsoft SQL Server\80


\Tools\BINN;K:\PROGRA~1\E!PC;K
:\Program Files\NMapWin\\bin;k:\util;c:\bat;K:\Program


Files\Windows Resource Ki
ts\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Syst




e
m32\Wbem;K:\Program Fil
es\Support Tools\;K:\Program Files\Common Files\Sonic


Shared;K:\Program Files\Co
mmon Files\Roxio Shared\DLLShared;K:\Program


Files\Executive Software\Diskeeper\
;K:\Program Files\Microsoft SQL Server\80


\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program
Files\NMapWin\\bin;k:\util;c:\bat;K:\Program


Files\Windows Resource Kits\Tools\
;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\System32


\Wbem;K:\Program Files\Suppor
t Tools\;K:\Program Files\Common Files\Sonic


Shared;K:\Program Files\Common File
s\Roxio Shared\DLLShared;K:\Program Files\Executive


Software\Diskeeper\;K:\Progr
am Files\Microsoft SQL Server\80\Tools\BINN;K:\PROGRA~1


\E!PC;K:\Program Files\NM
apWin\\bin;k:\util;c:\bat;K:\Program Files\Windows


Resource Kits\Tools\;K:\WINDO
WS\system32;K:\WINDOWS;K:\WINDOWS\System32


\Wbem;K:\Program Files\Support Tools\;
K:\Program Files\Common Files\Sonic Shared;K:\Program


Files\Common Files\Roxio S
hared\DLLShared;K:\Program Files\Executive


Software\Diskeeper\;K:\Program Files\
Microsoft SQL Server\80\Tools\BINN;K:\PROGRA~1\E!


PC;K:\Program Files\NMapWin\\bi
n;k:\util;c:\bat;K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system
32;K:\WINDOWS;K:\WINDOWS\System32\Wbem;K:\Program


Files\Support Tools\;K:\Progra
m Files\Common Files\Sonic Shared;K:\Program


Files\Common Files\Roxio Shared\DLL
Shared;K:\Program Files\Executive


Software\Diskeeper\;K:\Program Files\Microsoft
SQL Server\80\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util
;c:\bat;K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WIN
DOWS;K:\WINDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\C
ommon Files\Sonic Shared;K:\Program Files\Common


Files\Roxio Shared\DLLShared;K:
\Program Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Serv
er\80\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K
:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\W
INDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\Common Fil
es\Sonic Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program
Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Server\80\Too
ls\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program
Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sy
stem32\Wbem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic
Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Exe
cutive Software\Diskeeper\;K:\Program Files\Microsoft


SQL Server\80\Tools\BINN;K
:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías




de
ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties,




and
confers no rights.
You assume all risk for your use.


"jlhortal" wrote


in message news:080a01c3db4f$4e06e580$
En la ayuda de Windows XP Profesional, introduccion a




la
shell de comandos, se dice que la longitud máxima de
cualquier variable de entorno es de 8192 bytes. En mi
ordenador la variable PATH se trunca después de 1024

Es esto correcto ?

Hay alguna forma de superar esta limitación ?

Gracias..
.



.

Respuesta Responder a este mensaje
#12 Jose Hortal
15/01/2004 - 18:43 | Informe spam
gracias...

"JM Tella Llop [MVP Windows] ·" escribió en el mensaje
news:
efectivamente. Me pasa, y con XP en inglés y ademas incluso con el SP2.

Y la documentacion está clara:

The maximum individual environment variable size is 8192bytes.



Voy a ver si localizo en el KB de MS y te comento... (y desde luego, lo
reporto como "bug")

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"JM Tella Llop [MVP Windows] ·" wrote in message
news:
dejame un rato que lo pruebo

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"jlhortal" wrote in message
news:00e901c3db8b$cad2b710$
bueno no sólo eso, porque como ya te digo realmente tengo
definido el path a base de otras variables para que no
supere los 1024, pero tanto al arrancar cmd como al
ejecutar tareas y expandirse el path, éste queda truncado
en 1024
Puedier ser un problema entonces del buffer que tiene la


parte grafica de configuracion de variables de
entorno ¿no?

Te refieres a eso..

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de


ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and


confers no rights.
You assume all risk for your use.


"jlhortal" wrote


in message news:01ad01c3db89$a76718e0$
Mi anterior respuesta no es del todo correcta...
Efectivamente al hacer "set" también tengo el path con


más
de 1024 bytes, pero después de hacer set path= dentro del
shell de comandos.
El problema es entonces que al expandir el path definido
dentro de panel control, sistema, variables de entorno,
cuando arranca el shell, deja truncada path.
Tengo definida Path a través de otras variables, porque
si no en el panel de control tampoco me dejaba pasar de
1024

he ejecutado esto:

set path=%path%;%path%;%path%;%path%;%path%;%path%;%


path%;%path%;%path%;%path%;%path%;

para probar, el el path me lo ha dado mostruoso: sin


limitacion aparente:

echo %path%

K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\
WINDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\Common Fi
les\Sonic Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program
Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Server\80\To
ols\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Progra
m Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\S
ystem32\Wbem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic
Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Ex
ecutive Software\Diskeeper\;K:\Program Files\Microsoft


SQL Server\80\Tools\BINN;
K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program Files\W
indows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sys


t
em32\W
bem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic Shared;K
:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Executive S
oftware\Diskeeper\;K:\Program Files\Microsoft SQL


Server\80\Tools\BINN;K:\PROGRA
~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program
Files\Windows Re
source


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sys


t
em32\Wbem;K:\Pr
ogram Files\Support Tools\;K:\Program Files\Common


Files\Sonic Shared;K:\Program
Files\Common Files\Roxio Shared\DLLShared;K:\Program


Files\Executive Software\D
iskeeper\;K:\Program Files\Microsoft SQL Server\80


\Tools\BINN;K:\PROGRA~1\E!PC;K
:\Program Files\NMapWin\\bin;k:\util;c:\bat;K:\Program


Files\Windows Resource Ki
ts\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Syst




e
m32\Wbem;K:\Program Fil
es\Support Tools\;K:\Program Files\Common Files\Sonic


Shared;K:\Program Files\Co
mmon Files\Roxio Shared\DLLShared;K:\Program


Files\Executive Software\Diskeeper\
;K:\Program Files\Microsoft SQL Server\80


\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program
Files\NMapWin\\bin;k:\util;c:\bat;K:\Program


Files\Windows Resource Kits\Tools\
;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\System32


\Wbem;K:\Program Files\Suppor
t Tools\;K:\Program Files\Common Files\Sonic


Shared;K:\Program Files\Common File
s\Roxio Shared\DLLShared;K:\Program Files\Executive


Software\Diskeeper\;K:\Progr
am Files\Microsoft SQL Server\80\Tools\BINN;K:\PROGRA~1


\E!PC;K:\Program Files\NM
apWin\\bin;k:\util;c:\bat;K:\Program Files\Windows


Resource Kits\Tools\;K:\WINDO
WS\system32;K:\WINDOWS;K:\WINDOWS\System32


\Wbem;K:\Program Files\Support Tools\;
K:\Program Files\Common Files\Sonic Shared;K:\Program


Files\Common Files\Roxio S
hared\DLLShared;K:\Program Files\Executive


Software\Diskeeper\;K:\Program Files\
Microsoft SQL Server\80\Tools\BINN;K:\PROGRA~1\E!


PC;K:\Program Files\NMapWin\\bi
n;k:\util;c:\bat;K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system
32;K:\WINDOWS;K:\WINDOWS\System32\Wbem;K:\Program


Files\Support Tools\;K:\Progra
m Files\Common Files\Sonic Shared;K:\Program


Files\Common Files\Roxio Shared\DLL
Shared;K:\Program Files\Executive


Software\Diskeeper\;K:\Program Files\Microsoft
SQL Server\80\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util
;c:\bat;K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WIN
DOWS;K:\WINDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\C
ommon Files\Sonic Shared;K:\Program Files\Common


Files\Roxio Shared\DLLShared;K:
\Program Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Serv
er\80\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K
:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\W
INDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\Common Fil
es\Sonic Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program
Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Server\80\Too
ls\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program
Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sy
stem32\Wbem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic
Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Exe
cutive Software\Diskeeper\;K:\Program Files\Microsoft


SQL Server\80\Tools\BINN;K
:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías




de
ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties,




and
confers no rights.
You assume all risk for your use.


"jlhortal" wrote


in message news:080a01c3db4f$4e06e580$
En la ayuda de Windows XP Profesional, introduccion a




la
shell de comandos, se dice que la longitud máxima de
cualquier variable de entorno es de 8192 bytes. En mi
ordenador la variable PATH se trunca después de 1024

Es esto correcto ?

Hay alguna forma de superar esta limitación ?

Gracias..
.



.

Respuesta Responder a este mensaje
#13 JM Tella Llop [MVP Windows] ·
15/01/2004 - 18:49 | Informe spam
Y no encuentro nada

Paso a reportarlo como BUG. pero no tendrá arreglo como minimo hasta el SP3.

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"Jose Hortal" wrote in message news:
gracias...

"JM Tella Llop [MVP Windows] ·" escribió en el mensaje
news:
efectivamente. Me pasa, y con XP en inglés y ademas incluso con el SP2.

Y la documentacion está clara:

The maximum individual environment variable size is 8192bytes.



Voy a ver si localizo en el KB de MS y te comento... (y desde luego, lo
reporto como "bug")

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"JM Tella Llop [MVP Windows] ·" wrote in message
news:
dejame un rato que lo pruebo

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"jlhortal" wrote in message
news:00e901c3db8b$cad2b710$
bueno no sólo eso, porque como ya te digo realmente tengo
definido el path a base de otras variables para que no
supere los 1024, pero tanto al arrancar cmd como al
ejecutar tareas y expandirse el path, éste queda truncado
en 1024
Puedier ser un problema entonces del buffer que tiene la


parte grafica de configuracion de variables de
entorno ¿no?

Te refieres a eso..

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de


ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and


confers no rights.
You assume all risk for your use.


"jlhortal" wrote


in message news:01ad01c3db89$a76718e0$
Mi anterior respuesta no es del todo correcta...
Efectivamente al hacer "set" también tengo el path con


más
de 1024 bytes, pero después de hacer set path= dentro del
shell de comandos.
El problema es entonces que al expandir el path definido
dentro de panel control, sistema, variables de entorno,
cuando arranca el shell, deja truncada path.
Tengo definida Path a través de otras variables, porque
si no en el panel de control tampoco me dejaba pasar de
1024

he ejecutado esto:

set path=%path%;%path%;%path%;%path%;%path%;%path%;%


path%;%path%;%path%;%path%;%path%;

para probar, el el path me lo ha dado mostruoso: sin


limitacion aparente:

echo %path%

K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\
WINDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\Common Fi
les\Sonic Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program
Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Server\80\To
ols\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Progra
m Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\S
ystem32\Wbem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic
Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Ex
ecutive Software\Diskeeper\;K:\Program Files\Microsoft


SQL Server\80\Tools\BINN;
K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program Files\W
indows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sys


t
em32\W
bem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic Shared;K
:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Executive S
oftware\Diskeeper\;K:\Program Files\Microsoft SQL


Server\80\Tools\BINN;K:\PROGRA
~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program
Files\Windows Re
source


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sys


t
em32\Wbem;K:\Pr
ogram Files\Support Tools\;K:\Program Files\Common


Files\Sonic Shared;K:\Program
Files\Common Files\Roxio Shared\DLLShared;K:\Program


Files\Executive Software\D
iskeeper\;K:\Program Files\Microsoft SQL Server\80


\Tools\BINN;K:\PROGRA~1\E!PC;K
:\Program Files\NMapWin\\bin;k:\util;c:\bat;K:\Program


Files\Windows Resource Ki
ts\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Syst




e
m32\Wbem;K:\Program Fil
es\Support Tools\;K:\Program Files\Common Files\Sonic


Shared;K:\Program Files\Co
mmon Files\Roxio Shared\DLLShared;K:\Program


Files\Executive Software\Diskeeper\
;K:\Program Files\Microsoft SQL Server\80


\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program
Files\NMapWin\\bin;k:\util;c:\bat;K:\Program


Files\Windows Resource Kits\Tools\
;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\System32


\Wbem;K:\Program Files\Suppor
t Tools\;K:\Program Files\Common Files\Sonic


Shared;K:\Program Files\Common File
s\Roxio Shared\DLLShared;K:\Program Files\Executive


Software\Diskeeper\;K:\Progr
am Files\Microsoft SQL Server\80\Tools\BINN;K:\PROGRA~1


\E!PC;K:\Program Files\NM
apWin\\bin;k:\util;c:\bat;K:\Program Files\Windows


Resource Kits\Tools\;K:\WINDO
WS\system32;K:\WINDOWS;K:\WINDOWS\System32


\Wbem;K:\Program Files\Support Tools\;
K:\Program Files\Common Files\Sonic Shared;K:\Program


Files\Common Files\Roxio S
hared\DLLShared;K:\Program Files\Executive


Software\Diskeeper\;K:\Program Files\
Microsoft SQL Server\80\Tools\BINN;K:\PROGRA~1\E!


PC;K:\Program Files\NMapWin\\bi
n;k:\util;c:\bat;K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system
32;K:\WINDOWS;K:\WINDOWS\System32\Wbem;K:\Program


Files\Support Tools\;K:\Progra
m Files\Common Files\Sonic Shared;K:\Program


Files\Common Files\Roxio Shared\DLL
Shared;K:\Program Files\Executive


Software\Diskeeper\;K:\Program Files\Microsoft
SQL Server\80\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util
;c:\bat;K:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WIN
DOWS;K:\WINDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\C
ommon Files\Sonic Shared;K:\Program Files\Common


Files\Roxio Shared\DLLShared;K:
\Program Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Serv
er\80\Tools\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K
:\Program Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\W
INDOWS\System32\Wbem;K:\Program Files\Support


Tools\;K:\Program Files\Common Fil
es\Sonic Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program
Files\Executive Software\Diskeeper\;K:\Program


Files\Microsoft SQL Server\80\Too
ls\BINN;K:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;K:\Program
Files\Windows Resource


Kits\Tools\;K:\WINDOWS\system32;K:\WINDOWS;K:\WINDOWS\Sy
stem32\Wbem;K:\Program Files\Support Tools\;K:\Program


Files\Common Files\Sonic
Shared;K:\Program Files\Common Files\Roxio


Shared\DLLShared;K:\Program Files\Exe
cutive Software\Diskeeper\;K:\Program Files\Microsoft


SQL Server\80\Tools\BINN;K
:\PROGRA~1\E!PC;K:\Program


Files\NMapWin\\bin;k:\util;c:\bat;

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías




de
ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties,




and
confers no rights.
You assume all risk for your use.


"jlhortal" wrote


in message news:080a01c3db4f$4e06e580$
En la ayuda de Windows XP Profesional, introduccion a




la
shell de comandos, se dice que la longitud máxima de
cualquier variable de entorno es de 8192 bytes. En mi
ordenador la variable PATH se trunca después de 1024

Es esto correcto ?

Hay alguna forma de superar esta limitación ?

Gracias..
.



.





Respuesta Responder a este mensaje
#14 Jose Hortal
15/01/2004 - 23:22 | Informe spam
Después de hacer algunas pruebas, el programa de ejemplo siguiente muestra
más claramente por donde puede ir el problema.

Este es un programa de ejemplo que muestra:
1) Cualquier proceso al arrancar recibe la variable PATH truncada
2) Que realmente se podría hacer bien

El programa sería un "cargador" muy simple de aplicaciones, pero que simula
lo que haría el cargador real de windows ( aquí faltaría añadir al PATH las
variables del usuario )

Arranca al final una consola ( pero podría ser cualquier otro proceso,
consola o GUI ) en la que PATH llega correctamente

Es decir, el error que hemos expuesto parece más bien relacionado con el
cargador de aplicaciones de Windows y la definición de variables en el panel
de control, ya que ocurre en cualquier proceso que se arranque, que con la
shell de comandos en sí

#include <windows.h>
int main( int argc, char * argv[] )
{
char buffer[8193];
char buffer2[8193];
DWORD n;
long n1;
HKEY hKey;

// el valor esta truncado en los dos casos
n = GetEnvironmentVariable("PATH",buffer,8192);
n = ExpandEnvironmentStrings("%PATH%",buffer,8192);

// obtener la variable PATH del registro
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
TEXT("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"),
0,
KEY_QUERY_VALUE,
&hKey) != ERROR_SUCCESS
) return 1;


// el valor esta truncado con RegQueryValue
long n192;
n = RegQueryValue(hKey,
TEXT("PATH"),
(LPBYTE)buffer,
&n1);
n= lstrlen(buffer);


// el valor es correcto con RegQueryValueEx y ExpandEnvironmentStrings
n92;
n = RegQueryValueEx(hKey,
TEXT("PATH"),
NULL,
NULL,
(LPBYTE)buffer,
&n);
RegCloseKey(hKey);
n = ExpandEnvironmentStrings(buffer,buffer2,8192);

// poner el nuevo valor y comprobar que ha quedado puesto el valor correcto
BOOL bOk = SetEnvironmentVariable("PATH",buffer2);
n = GetEnvironmentVariable("PATH",buffer,8192);

// al crear el proceso ( en este caso una consola ) le llega la variable
PATH con el valor correcto
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

if( !CreateProcess( NULL,
"cmd",
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi )
) {
return 1;
}

// si se ejecuta set en la consola que se ha abierto, el PATH es correcto
// ya que lo ha heredado del padre
// esto es lo que debería hacer el cargador de Windows !
return 0;
}

"JM Tella Llop [MVP Windows] ·" escribió en el mensaje
news:%23mamv$
Y no encuentro nada

Paso a reportarlo como BUG. pero no tendrá arreglo como minimo hasta el
SP3.
Respuesta Responder a este mensaje
#15 JM Tella Llop [MVP Windows] ·
15/01/2004 - 23:28 | Informe spam
gracias por la info... y por las pruebas... ;-)

Jose Manuel Tella Llop
MVP - Windows

http://www.multingles.net/jmt.htm
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.


"Jose Hortal" wrote in message news:
Después de hacer algunas pruebas, el programa de ejemplo siguiente muestra
más claramente por donde puede ir el problema.

Este es un programa de ejemplo que muestra:
1) Cualquier proceso al arrancar recibe la variable PATH truncada
2) Que realmente se podría hacer bien

El programa sería un "cargador" muy simple de aplicaciones, pero que simula
lo que haría el cargador real de windows ( aquí faltaría añadir al PATH las
variables del usuario )

Arranca al final una consola ( pero podría ser cualquier otro proceso,
consola o GUI ) en la que PATH llega correctamente

Es decir, el error que hemos expuesto parece más bien relacionado con el
cargador de aplicaciones de Windows y la definición de variables en el panel
de control, ya que ocurre en cualquier proceso que se arranque, que con la
shell de comandos en sí

#include <windows.h>
int main( int argc, char * argv[] )
{
char buffer[8193];
char buffer2[8193];
DWORD n;
long n1;
HKEY hKey;

// el valor esta truncado en los dos casos
n = GetEnvironmentVariable("PATH",buffer,8192);
n = ExpandEnvironmentStrings("%PATH%",buffer,8192);

// obtener la variable PATH del registro
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
TEXT("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"),
0,
KEY_QUERY_VALUE,
&hKey) != ERROR_SUCCESS
) return 1;


// el valor esta truncado con RegQueryValue
long n192;
n = RegQueryValue(hKey,
TEXT("PATH"),
(LPBYTE)buffer,
&n1);
n= lstrlen(buffer);


// el valor es correcto con RegQueryValueEx y ExpandEnvironmentStrings
n92;
n = RegQueryValueEx(hKey,
TEXT("PATH"),
NULL,
NULL,
(LPBYTE)buffer,
&n);
RegCloseKey(hKey);
n = ExpandEnvironmentStrings(buffer,buffer2,8192);

// poner el nuevo valor y comprobar que ha quedado puesto el valor correcto
BOOL bOk = SetEnvironmentVariable("PATH",buffer2);
n = GetEnvironmentVariable("PATH",buffer,8192);

// al crear el proceso ( en este caso una consola ) le llega la variable
PATH con el valor correcto
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

if( !CreateProcess( NULL,
"cmd",
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi )
) {
return 1;
}

// si se ejecuta set en la consola que se ha abierto, el PATH es correcto
// ya que lo ha heredado del padre
// esto es lo que debería hacer el cargador de Windows !
return 0;
}

"JM Tella Llop [MVP Windows] ·" escribió en el mensaje
news:%23mamv$
Y no encuentro nada

Paso a reportarlo como BUG. pero no tendrá arreglo como minimo hasta el
SP3.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida