19

Если я введу dir в командной строке, я думаю, что он выполняет dir.exe скрытый где-то в системе. Есть ли такой файл? Где это находится?

4 ответа4

35

dir - это внутренняя команда MS-DOS. Как и другие внутренние команды, он встроен в файл с именем command.com. В Википедии есть страница со списком команд DOS, и там написано:

Интерпретатор команд для MS DOS запускается, когда не запущены никакие прикладные программы; после выхода из приложения, если память, используемая для интерпретатора команд, была перезаписана, MS DOS перезагрузит интерпретатор команд из дискового хранилища. Интерпретатор команд обычно хранится в файле с именем « COMMAND.COM ». Некоторые команды встроены в COMMAND.COM. Когда пользователь вводит строку текста в командной строке операционной системы, COMMAND.COM проанализирует строку и попытается сопоставить имя команды со встроенной командой или с именем исполняемого файла программы или пакетного файла на диске. , Если совпадений не найдено, выводится сообщение об ошибке и обновляется командная строка.

Резидентные команды немного отличались между версиями MS DOS. Как правило, функции DIR (список каталогов), ERASE или DEL (удаление файла или каталога), COPY (копирование файлов), DATE (отображение или установка даты), TIME (отображение или установка времени), CD (изменение рабочего каталога), MD (создать каталог на текущем диске), REN (переименовать файл или каталог) и некоторые другие находились в COMMAND.COM.

Для полноты ответа ниже приведен список внутренних и внешних команд MS-DOS. Внутренние команды находятся в COMMAND.COM, который загружается в память при запуске компьютерной системы; эти команды не находятся на диске. Внешние команды - это файлы, которые находятся на диске и имеют расширение .COM,.EXE или .Летучая мышь Оба типа команд выполняются из командной строки MS-DOS.

Внутренние команды:

  • ПЕРЕРЫВ
  • ВЫЗОВ
  • CHCP
  • CHDIR(CD)
  • ЦБС
  • COPY
  • CTTY
  • ДАТА
  • DEL(УДАЛИТЬ)
  • DIR
  • ECHO
  • ВЫХОД
  • ЗА
  • ИДТИ К
  • ЕСЛИ
  • MKDIR(MD)
  • ДОРОЖКА
  • ПАУЗА
  • НЕЗАМЕДЛИТЕЛЬНЫЙ
  • REM
  • ПЕРЕИМЕНОВАТЬ (REN),
  • RMDIR (РД)
  • ЗАДАВАТЬ
  • СДВИГ
  • ВРЕМЯ
  • ТИП
  • VER
  • ПРОВЕРКИ
  • VOL

Внешние команды:

  • APPEND.EXE
  • ASSIGN.COM
  • attrib.exe
  • backup.exe
  • CHKDSK.EXE
  • COMMAND.COM
  • Comp.exe
  • DEBUG.EXE
  • DISKCOMP.COM
  • DISKCOPY.COM
  • DOSKEY.COM
  • DOSSHELL.COM
  • EDIT.COM
  • EDLIN.EXE
  • EMM386.EXE
  • EXE2BIN.EXE
  • EXPAND.EXE
  • FASTOPEN.EXE
  • fc.exe
  • FDISK.EXE
  • FORMAT.COM
  • GRAFTABLE.COM
  • GRAPHICS.COM
  • help.exe
  • JOIN.EXE
  • KEYB.COM
  • LABEL.EXE
  • MEM.EXE
  • MIRROR.COM
  • MODE.COM
  • MORE.COM
  • NLSFUNC.EXE
  • PRINT.EXE
  • QBASIC.EXE
  • RECOVER.EXE
  • Replace.exe
  • RESTORE.EXE
  • SETVER.EXE
  • Share.exe
  • SORT.EXE
  • Subst.exe
  • SYS.COM
  • TREE.COM
  • UNDELETE.EXE
  • UNFORMAT.COM
  • xcopy.exe

Справка: поддержка Microsoft

Примечание: внешние команды находятся в C:\Windows\System32 при условии, что корневым диском является C:

10

Большинство стандартных команд "DOS" встроены в командную оболочку Windows. Нет ни приложения dir ни cd

8

Dir - это внутренняя команда, такая как cd , copy и call . Это просто подпрограмма интерпретатора DOS, которую вы вызываете.

Есть, однако, внешние команды. Они обычно находятся в C:\Windows\ C:\Windows\System\ C:\Windows\System32 и (если у вас есть 64-битные окна) C:\Windows\SysWOW64\

Однако внешние команды не ограничиваются этими местоположениями. Внешние команды могут быть вызваны из каталога, из которого вы работаете. (в недавно запущенной оболочке DOS в Windows 7 это обычно будет C:\Users\YourUsername\). Можно также вызывать внешние команды из других каталогов, если они находятся в переменной среды PATH . Чтобы увидеть, какие каталоги находятся на вашем пути, используйте SET PATH .

Если вам понадобится какая-то утилита из каталога, но вам нужно будет перейти в другие каталоги, вы можете добавить папку утилиты в PATH , используя SET PATH=%PATH%;DriveLetter:\Utility\Path\Here\ . Это изменение влияет только на это окно DOS.

Я надеюсь, что это новые и полезные знания!

2

Для дополнительной справки, вот хороший веб-сайт с довольно хорошим списком команд, доступных для cmd.exe:

http://ss64.com/nt/

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