Ошибка «more» не является внутренней или внешней командой, исполняемой программой или пакетным файлом появляется в командной строке Windows в момент, когда система не находит исполняемый файл more.com ни в текущем каталоге, ни в путях, перечисленных в переменной окружения PATH. Чаще всего сбой возникает после установки сторонних программ, которые перезаписали системные переменные, либо при повреждении файла в папке C:\Windows\System32.
Команда more используется для постраничного вывода длинных текстов и результатов других команд, например dir | more или type log.txt | more. Если она перестала работать, это почти всегда симптом более широкой проблемы: вместе с ней могут «отвалиться» и другие системные утилиты — findstr, sort, xcopy. Поэтому диагностику стоит начинать с проверки окружения, а не с поиска самого файла.
Почему Windows не находит команду more
Командный интерпретатор cmd.exe ищет программу в строго определённом порядке: сначала среди встроенных команд, затем в текущей папке, затем по всем каталогам из переменной PATH. Команда more не является встроенной — это отдельная программа more.com, лежащая в C:\Windows\System32. Соответственно, есть три основные причины сбоя.
- 🔧 Повреждённая переменная PATH — из неё пропал путь
C:\Windows\System32, обычно после установки ПО, которое перезаписало переменную вместо добавления своего пути. - 📁 Отсутствует или повреждён файл more.com — удалён антивирусом по ложному срабатыванию, стёрт «чистильщиком» или повреждён при сбое диска.
- ⚙️ Переменная PATHEXT не содержит расширение
.COM— тогда система не распознаёт more.com как исполняемый файл. - 👤 Ошибка действует только в текущей сессии — PATH был изменён командой
setвнутри конкретного окна и не сохранён в системе.
⚠️ Внимание: если команду more не видит только одно открытое окно терминала, а в новом окне всё работает, — не спешите править системные переменные. Проблема локальна: кто-то (скрипт или вы сами) переопределил PATH внутри этой сессии. Просто закройте окно и откройте новое.
Быстрая диагностика: что именно сломано
Прежде чем что-либо исправлять, выполните три короткие проверки — они займут меньше минуты и точно укажут на источник проблемы. Откройте командную строку и по очереди введите команды ниже.
echo %PATH%
dir C:\Windows\System32\more.com
echo %PATHEXT%
Первая команда покажет содержимое PATH: ищите в выводе фрагмент C:\Windows\System32. Вторая проверит, существует ли сам файл more.com — если файл на месте, вы увидите его размер и дату. Третья выведет список исполняемых расширений; в нём обязательно должно присутствовать .COM.
Дополнительная проверка — запуск программы по полному пути: введите C:\Windows\System32\more.com. Если программа запускается и ждёт ввода, значит файл исправен, а проблема целиком в переменных окружения. Если получаете ошибку «файл не найден» или «отказано в доступе» — дело в самом файле или правах.
Способ 1: восстановить переменную PATH
Это самый частый сценарий. Откройте Панель управления → Система → Дополнительные параметры системы → Переменные среды (быстрый путь — нажать Win + R и ввести sysdm.cpl, затем вкладка «Дополнительно»). В разделе «Системные переменные» найдите Path и нажмите «Изменить».
Проверьте, присутствуют ли в списке базовые системные пути. Если какого-то нет — добавьте через кнопку «Создать». Ориентировочный минимальный набор для нормальной работы системных утилит:
C:\Windows\System32
C:\Windows
C:\Windows\System32\Wbem
☑️ Восстановление PATH
После сохранения изменений обязательно закройте и заново откройте командную строку — уже запущенные окна не подхватывают обновлённые переменные окружения. Затем снова выполните more /? для проверки.
Способ 2: восстановить файл more.com
Если диагностика показала, что more.com отсутствует в System32, файл нужно вернуть из системного хранилища компонентов. Для этого в Windows есть встроенные средства — скачивать more.com со сторонних сайтов нельзя: велик риск получить заражённый файл.
Запустите командную строку от имени администратора и выполните по очереди:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
Утилита SFC проверяет целостность защищённых системных файлов и автоматически восстанавливает повреждённые из кэша. Команда DISM применяется, если SFC не справилась или хранилище компонентов само повреждено — она подтянет исправные файлы из источника обновлений, поэтому для неё желательно активное интернет-соединение. Обе операции занимают заметное время, не закрывайте окно до завершения.
⚠️ Внимание: не прерывайте работуsfc /scannowиDISMна середине — прерванная проверка может оставить системные компоненты в несогласованном состоянии. Дождитесь итогового сообщения о результатах.
Где ещё может лежать копия more.com
В 64-битных Windows существует каталог C:\Windows\SysWOW64 для 32-разрядных компонентов, а также хранилище WinSxS (C:\Windows\WinSxS), откуда SFC берёт эталонные копии файлов. Вручную копировать файлы из WinSxS не рекомендуется — используйте sfc /scannow, который сделает это корректно и с правильными правами.
Способ 3: проверить PATHEXT и временные обходные пути
Реже встречается ситуация, когда PATH в порядке, файл на месте, но команда всё равно не запускается. Тогда проверьте переменную PATHEXT — она определяет, какие расширения система считает исполняемыми. Стандартное значение выглядит примерно так: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC. Если расширения .COM в списке нет, добавьте его через тот же диалог «Переменные среды».
Пока вы разбираетесь с причиной, работу можно продолжить обходными способами. Вместо more для постраничного вывода подойдёт запуск по полному пути, а в ряде сценариев — перенаправление вывода в файл с последующим открытием в редакторе:
dir | C:\Windows\System32\more.com
dir > C:\Temp\listing.txt
Сравнение причин и методов устранения
Сводная таблица поможет быстро сориентироваться, какой сценарий соответствует вашей ситуации.
| Причина | Как распознать | Решение |
|---|---|---|
| В PATH нет System32 | echo %PATH% не содержит нужного пути | Добавить путь в переменные среды |
| Отсутствует more.com | dir C:\Windows\System32\more.com — файл не найден | sfc /scannow, затем DISM |
| Нет .COM в PATHEXT | echo %PATHEXT% без .COM | Дописать .COM в PATHEXT |
| Сбой только в одном окне | В новом окне cmd команда работает | Закрыть окно, открыть новое |
| Файл заблокирован антивирусом | Файл есть, но «отказано в доступе» | Проверить карантин антивируса, затем SFC |
Профилактика: как не допустить повторения ошибки
Чтобы проблема не вернулась, стоит понять, кто изменил PATH. Вспомните, какое ПО устанавливалось незадолго до появления ошибки: некоторые инсталляторы перезаписывают системную переменную вместо аккуратного дополнения. При повторной установке таких программ проверяйте PATH сразу после завершения.
Также разумно периодически сохранять резервную копию переменных окружения. Это можно сделать одной командой, выгрузив значения в текстовый файл:
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" C:\env-backup.reg
Наконец, избегайте «очистителей системы», которые обещают удалить «лишние» файлы из System32: more.com занимает считаные килобайты, а его удаление ломает не только ручные команды, но и сторонние скрипты, где more используется для пауз и постраничного вывода.
Частые вопросы
Ошибка появляется только для more, остальные команды работают. Что это значит?
Скорее всего, повреждён или удалён именно файл more.com, а переменные окружения в порядке. Выполните sfc /scannow от имени администратора — утилита восстановит недостающий системный файл автоматически.
Можно ли скачать more.com из интернета и положить в System32?
Технически возможно, но делать этого не стоит: файлы с неофициальных сайтов могут не соответствовать версии вашей Windows или содержать вредоносный код. Безопасный путь — встроенные средства sfc /scannow и DISM, которые берут эталонную копию из системного хранилища.
Я исправил PATH, но ошибка осталась. Что дальше?
Сначала полностью закройте все окна командной строки и откройте новое — изменения переменных не действуют на уже запущенные процессы. Если не помогло, проверьте, что путь добавлен именно в системную переменную Path, а не только в пользовательскую, и что в нём нет опечаток.
Команда more не работает только внутри bat-файла. В чём дело?
Вероятно, сам пакетный файл ранее переопределяет PATH командой set PATH=..., стирая системные пути. Откройте скрипт в редакторе и проверьте строки с set PATH: корректный вариант дополнения выглядит как set PATH=%PATH%;C:\новый\путь.
Чем заменить more, если восстановить её быстро не получается?
Для просмотра длинного вывода можно перенаправить результат в файл (команда > C:\Temp\out.txt) и открыть его в блокноте. В PowerShell есть альтернатива — передача вывода в Out-Host -Paging, которая работает независимо от more.com.