Windows CMD.exe "El sistema no puede encontrar la ruta especificada".
1) Cuando abro un nuevo CMD (Win + R => cmd). Comienza con la introducción. (en la línea 3)
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
The system cannot find the path specified.
C:\Users\ViliamKopecky>
2) Cuando ejecuto algún comando comocmd /C dir
(ocmd /C php -v
o lo que sea) (en la línea 2)
C:\Users\ViliamKopecky>cmd /C dir
The system cannot find the path specified.
Volume in drive C is Windows7_OS
Volume Serial Number is 8230-1246
...
C:\Windows\System32>cmd /C php -v
The system cannot find the path specified.
PHP 5.4.8 (cli) (built: Oct 16 2012 22:30:23)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
3) (el más molesto) cuando corroexec
Funciona desde PHP o Node.js o probablemente cualquier lenguaje de scripting. (que probablemente se ejecutan desde el interior comocmd /C <command>
)
1) cuando ejecuto el comando directamente desde el cmd (o mingw, ...)
C:\Users\ViliamKopecky>dir
Volume in drive C is Windows7_OS
Volume Serial Number is 8230-1246
Directory of C:\Users\ViliamKopecky
Comencemos con el comando simple de cmd.
php -r "exec('dir', $stdout, $stderr); print(implode(\"\n\", $stdout), $stderr);"
y el resultado es así(La prueba del directorio está vacía, eso es correcto):
E:\test>php -r "exec('dir', $stdout, $stderr); print(implode(\"\n\", $stdout), $stderr);"
The system cannot find the path specified.
Volume in drive E is www
Volume Serial Number is 0C99-95EC
Directory of E:\test
09.11.2012 22:42 <DIR> .
09.11.2012 22:42 <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 13 495 296 000 bytes free
int(1)
Lo que demuestra que el comandodir
has se ejecuta desde php correctamente. Lo único que está mal es la segunda línea.El sistema no puede encontrar la ruta especificada. - Eso no debería estar allí.
Este mensaje es enviado por exec desdePHP (y también deNode.js comorequire('child_process').exec("dir", function(err, stdout, stderr) {console.log(stderr)});
)
Cuando ejecuto el comando directamente desde cmd (o mingw, etc.) se ejecuta correctamente sin el mensaje. La variable de entorno PATH parece estar bien. El problema solo se ejecuta desde el entorno de script a través deexec
funciones
¿Cómo deshacerme de ese molesto mensaje? Gracias