Решено путем восстановления Windows до предыдущего состояния
Сообщение (система не может найти указанный путь) показывает...
1) Когда я открываю новый CMD (Win + R = > cmd). Он начинается с введения. (в строке 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) Когда я выполняю некоторую команду, например cmd /C dir
(или cmd /C php -v
или что-то еще) (в строке 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) (самый раздражающий), когда я запускаю функцию exec
из PHP или Node.js или, возможно, любой скриптовый язык. (которые, вероятно, запускаются изнутри как cmd /C <command>
)
Сообщение не отображается...
1), когда я выполняю команду прямо из cmd (или mingw,...)
C:\Users\ViliamKopecky>dir
Volume in drive C is Windows7_OS
Volume Serial Number is 8230-1246
Directory of C:\Users\ViliamKopecky
Начнем с простой команды из cmd.
php -r "exec('dir', $stdout, $stderr); print(implode(\"\n\", $stdout), $stderr);"
и результат будет таким (тест каталога пуст - это правильно):
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)
Что показывает, что команда dir
выполнена из php правильно. Единственное, что неверно, это вторая строка - Система не может найти указанный путь. - этого не должно быть.
Это сообщение выводится exec из PHP (а также из Node.js как require('child_process').exec("dir", function(err, stdout, stderr) {console.log(stderr)});
)
Когда я выполняю команду прямо из cmd (или mingw и т.д.), она выполняется правильно без сообщения. Переменная среды PATH выглядит нормально. Задача просто выполняется из среды script через функции exec
.
Как избавиться от этого раздражающего сообщения? Спасибо