Эта тема на forum.dklab.ru


Дмитрий Котеров: Can't spawn cmd.exe: No such file or directory
В некоторых системах при попытке запуска команды system() из Perl выводится, что он не может найти cmd.exe. При этом переменная окружения COMSPEC, как можно убедиться, находится в полном порядке.

Причина — ошибка в Perl. Возникает она из-за того, что в PATH указан путь в формате:

%SystemRoot%\system32

а не

C:\WINDOWS\system32

В результате Perl путается в этих процентах и не может ничего найти, например:


C:\>z:\usr\bin\perl -we "system('dir')"
Can't spawn "cmd.exe": No such file or directory at -e line 1.


Решение данной проблемы следующее. Достаточно добавить в PATH (Панель управления — Система — ... — Переменные среды) нормальный путь до директории, в которой лежит cmd.exe.
Snap:
Сделал как сказано, исправил все пути перегрузился и опять таже кака can't spawn cmd.exe бла бла бла
Ну почему так фатально не везет. Под 98 просто летает никаких проблем?
Помогите!!! Очень понравился Денвер, я задолбался всё по кускам собирать и настраивать, только для проверки сайта, а тут все уже замучено, очень удобно :)
Дмитрий Котеров:
Команда:

set > result.txt

какой результат дает?
Юрий Насретдинов:
Snap:
Хм, под windows 98 command.com, если я не ошибаюсь?
Rumata:
и под вин98 надо писать C:\WINDOWS\command.com сли ОС инсталлирована у вас в папку WINDOWS
Snap:
Дома ХР. Прописал все пути, но проблемы начиная с subst и заканчивая с can't spawn cmd.exe
snap:
Дмитрий Котеров:
можно поподробнее, у меня ХР и проблема возникае на процессе subst - я прописал вручную
потом он выдает ошибку can't spawn cmd.exe
Пути все перепроверил не проходит. А на работе стоит 98 там все установилось без единой проблемы.
помогите разодраться в чем захмычка?
И как ввести команду set > resault.txt ?
Дмитрий Котеров:
И как ввести команду set > resault.txt ?
Что значит - как? В командной строке, как же еще.
Snap:
Дмитрий Котеров:
Я так подозреваю у меня проблема с системой :)
У меня при вызове из консоли соманды cmd и subst не исполняются без указания пути к исполняемым файлам. Переменный среды все настроены как на машине где эти команды выполняются и как указано у Вас, но это не помогает, я понял, что не могу понять почему не работают переменный среды???
Дмитрий Котеров:
Переменный среды все настроены как на машине где эти команды выполняются
Как?
Юрий Чоков:
Здравствуйте!
У меня такая же проблема была на Windows XP
Я запускал процесс с веб интерфейса и результат сохранял в файл.

#!/usr/local/ActivePerl-5.6/bin/perl -w
use strict;
system "dir > c:\\temp\\1.txt";

При этом появлялась ошибка Can't spawn cmd.exe: No such file or directory
В переменных окружения подкорректировал пути:
заменил %SystemRoot%system32 на c:\WINDOWS\system32
но результата это не дало даже после перегрузки компьютера.

Решил переименовать файл cmd.exe на cmd_1.exe посмотреть что же после этого произойдет.
Как ни странно но ошибка исчезла и скирипт заработал корректно.
Но вот что странное происходит когда запускаешь консоль с главного меню, в папке c:\WINDOWS\system32 создается файл cmd.exe,
как так может быть не понимаю.
Но тем не менее ошибка больше не проявлялась.
bæv:
Ветка выделена в отдельную тему «мусор из «Can't spawn cmd.exe…»»,
расположенную в форуме Мусоропровод (03 Апреля 2012, 18:14).

Эта тема на forum.dklab.ru