1

Я включил telnet-клиент на моей 64-битной машине с Windows 7, и если я открою меню «Пуск» и запустите cmd оттуда, я смогу запустить telnet.

Я обычно использую комбинацию клавиш Win-C, реализованную этим фрагментом AutoHotkey, чтобы открыть консоль.

#c::Run, C:\WINDOWS\system32\cmd.exe

По какой-то странной причине, когда я пытаюсь запустить telnet в окне консоли, открытом таким образом, я получаю

Microsoft Windows [Версия 6.1.7601] Copyright (c) 2009 Корпорация Microsoft. Все права защищены.

C:\Users\Steve\Documents> telnet 'telnet' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

Путь выполнения в любой консоли, независимо от того, как он был открыт, выдает один и тот же вывод.

Может кто-нибудь пролить свет на то, почему telnet может работать на одной консоли, а не на другой?

5 ответов5

1

Решение этой проблемы:

В 64-битной операционной системе telnet.exe используется из подкаталога «% windir%\WinSXS», а не из подкаталога «% windir%\System32» из-за настроек среды по умолчанию.

Чтобы решить эту проблему, выберите в компиляторе AHK 64-разрядную опцию из списка, чтобы скомпилировать выбранный исполняемый файл для запуска telnet.exe из скомпилированного исполняемого файла AHK, поскольку telnet.exe указан как вкладка 64-разрядного процесса в списке задач. , Запуск 32-разрядного файла telnet.exe из подкаталога «% windir%\System32» не будет выполняться в 64-разрядной операционной системе. 64-разрядный файл telnet.exe из «% windir%\WinSXS» в режиме совместимости будет зависать при работе из 64-разрядной операционной системы.

1

Фрагмент кода сделал бы публикацию решения намного проще!

Ваша проблема в том, что команда pathz rulez по-прежнему применяется к DOS даже при работе под Windows.

Внимательно посмотрите на ваш путь в каждой упомянутой среде и местоположение программы telnet, и проверьте, найдет ли командный процессор исполняемый файл в каждом случае. Вы должны быть в состоянии указать полный путь к имени программы telnet в AHK, что должно решить вашу проблему.

В качестве альтернативы поместите пакетный файл с именем telnet.bat в папку с документами, которая вызывает саму программу telnet.

В обоих случаях не забудьте передать telnet входные параметры командной строки, например: /telnet.exe% 0% 1 и т.д.

1

Похоже, что решение этого другого вопроса может относиться непосредственно к вашему сценарию:telnet не работает.

32-битная оболочка может не работать на 64-битном клиенте Telnet. Ваш скрипт AutoHotkey запускает CMD из каталога System32.

Попробуйте запустить CMD прямо из меню «Пуск». Посмотрите, получит ли это другие результаты. Если нет, попробуйте использовать WHERE (как в оболочке, где работает Telnet, так и в оболочке, в которой он не работает), и сообщите PATH из обоих случаев. Это значительно упростит дальнейшее устранение неполадок.

0

Я быстро отказался от попыток выяснить, что вызвало эту проблему, поскольку у меня не было острой необходимости в этом. Я был в состоянии выполнить telnet, но не так, как я изначально пытался. Даже когда я запускал его, я обнаружил, что он менее полезен, чем telnet на виртуальной машине с Linux. В последний раз я широко использовал telnet (в любом случае в Windows) в XP, и telnet в Windows 7, похоже, сделал шаг назад по сравнению с этим.

-1

Обновить:

Вы должны убедиться, что telnet.exe правильно установлен.

При установке Win7 64bit вы можете найти его в каталоге, похожем на этот:

C:\Windows\ WinSxS \ amd64_microsoft-окна-телнет-client_31bf3856ad364e35_6.1.7600.16385_none_1426830c3ebb712d

Если его нет, удалите и переустановите его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .