В Windows * .exe, * .bat, * .cmd и * .com все представляют программы или сценарии оболочки, которые можно запустить, просто дважды щелкнув их. Существуют ли другие расширения имени файла, указывающие на то, что файл является исполняемым?
РЕДАКТИРОВАТЬ : Когда я прыгаю в новый проект (или обратно в старый проект!), Одна из общих вещей, которые я хочу сделать, оглядываясь вокруг, это выяснить, какие инструменты есть. В Unix (который я использовал десятилетиями) есть бит выполнения, так что это так просто:
find . -executable -type f
Я подумал, что в Windows, которая, кажется, имеет гораздо более сложный механизм для «является ли этот исполняемый файл (и как я его выполняю)», будет относительно небольшое количество расширений имен файлов, которые будут служить примерно той же цели.
Для моего текущего проекта *.exe *.bat *.cmd
почти наверняка достаточно, но я решил спросить, был ли авторитетный список.
источник
Распространенным для программ установки является
.msi
.источник
msiexec.exe
..vbs это скрипт. и .js
Но если вы знаете какую-то историю, вы сможете лучше понять ситуацию. Я полагаю, что если бы я не использовал компьютеры так долго, как раньше, я мог бы также сосредоточиться на том, чтобы знать, какие расширения являются исполняемыми файлами ... потому что они довольно захватывающие и кажутся фундаментальными ... и я полагаю, что они ... Но обратите внимание, как со временем .COM сильно вымер после DOS, просто в основном известно, я полагаю, после этого, если вообще, в Windows 9x в оболочке command.com. Может быть, старые NT использовали их очень часто. Скрипты ... VBS пришло время win9x возможно ... так что появляются новые. PS1 даже новее, чем VBS.
.COM очень старый .. я не уверен, если Windows XP для примеров опирается на какие-либо файлы .COM. Но у него есть command.com больше для старых приложений, я думаю.
.BAT - это скрипт. Возвращение из дней DOS. все еще используется сегодня. .VBS более современен, но .BAT все еще используется и не выйдет из употребления в ближайшее время, и люди разумно используют оба. Есть .CMD, который я не использовал, но, вероятно, ничем не отличался. Есть ps1 (powershell. Это более современно, чем vbscript). Если мы говорим о скриптах в широком смысле, то есть .REG
На самом деле термин исполняемый файл применяется только к EXE и .COM (в основном, .COM вымерли ... больше для win9x (в командной строке win9x была command.com, cmd.exe не было), а COM-файлы - для DOS. Но не CMD NT, например командной оболочкой NT, является cmd.exe, хотя, как уже упоминалось, в NT есть command.com, я думаю, для устаревших приложений, но NT, скорее всего, не полагается на него)
.MSC, например, start..run..services.msc Они не являются исполняемыми файлами .. Я полагаю, что они являются своего рода сценарием .. services.msc, кажется, написан на xml) Но если это не так, то можно пойти еще дальше к несистемным вещам, и сказать, что HTML-страницы едины, потому что они интерпретируются .. как сценарий. Но не ОС, хотя .. .CPL не являются скриптами .. посмотрите на них в блокноте. Люди склонны не думать о них как об исполняемых файлах или скриптах, возможно, потому что их пишут только разработчики MS. (или если это делают другие, то это очень необычно!)
источник
.MSC
вPATHEXT
не позволяет запускать оснастки MMC без добавления расширения (например,services
вместоservices.msc
).:-(
services.exe
.diskmgmt
(без расширения) из командной строки, это будет работать, ноservices
не будет. Однако ни один из них не будет работать, если вы попытаетесь запустить их из диалогового окна « Выполнить » без.msc
расширения, хотя общесистемнаяpathext
переменная содержит.msc
.Обозначать что?
Я знаю, что этот вопрос сейчас звучит немного запутанно, но вопрос имеет значение. Когда я объясню, почему это важно, вопрос станет более понятным.
Хотя ответ Кена Уайта о переменной PATHEXT (в «среде» командной строки) является хорошим и кратким ответом, и этот ответ может хорошо сработать для вас, ответ неполон. Неполная причина в том, что правильный ответ отличается в зависимости от того, что вы пытаетесь сделать.
Например, вы можете попробовать:
Некоторые из этих методов запуска программ могут использовать разные методы определения того, какие расширения файлов могут поддерживаться. В частности, использование CMD может отличаться от меню «Выполнить».
Например, загадочный блог Уэса: Настройка Windows Run Command ... отмечает, что проверяются различные места, включая раздел реестра.
Ответ также может зависеть от того, какая версия Microsoft Windows используется. В Windows 10 я просто набрал имя zip-файла в командной строке, и он открыл Windows Explorer. Кажется, я помню, что не работал в Windows XP (хотя в Windows XP я мог набрать «start filename.zip» и получить такой же эффект). Так что либо моя память неисправна, либо Microsoft пытается улучшить новые версии Windows. (Надеюсь, для меня последняя.)
В традиционной командной строке Windows 10 (с запуском «CMD»), когда я иду в местоположение (используя команду «CD») zip-файла и набираю «filename.zip», файл открывается. Когда я иду в это место и набираю «имя файла» (без расширения «.zip»), то Windows не находит файл. Однако если я запускаю «
ECHO %PATHEXT%
», а затем «SET PATHEXT=%PATHEXT%;.ZIP
» (а затемECHO %PATHEXT%
снова « », чтобы убедиться, что у меня был нужный эффект), я могу ввести «имя файла», и в командной строке будет найден файл .ZIP. Итак, это эффект переменной% PATHEXT%.Вы можете увидеть другой список расширений, запустив
ASSOC
команду. Например, выполнение этой команды показывает несколько строк вывода, включая следующее (в моей системе) - ".zip=CompressedFolder
". Затем я могу увидеть, что это работает, набрав "FTYPE | FIND /I "CompressedFolder"
". (Это предназначено для традиционной командной строки. PowerShell не понравятся эти неэкранированные кавычки.) (Если вы просто наберете "FTYPE
" без остальной части этой командной строки, вы увидите намного больше вывода о других расширениях.)Если я наберу "
ASSOC | FIND /C "."
" на моем компьютере с Windows 10, то обнаружу, что у меня 339 строк вывода, когда я проверяю связи файлов таким образом.MS KB 162059 посвящена настройке, как Internet Explorer открывает документы Office.
Таким образом, запрос списка исполняемых файлов по умолчанию слишком расплывчатый. Различные компоненты Microsoft Windows могут использовать разные ресурсы, поэтому вопрос должен быть более конкретным для точного ответа.
В вопросе упоминалось использование Проводника для двойного щелчка по значку. Чтобы увидеть список используемых для этого исполняемых файлов, я думаю, вы захотите проверить реестр. Вы можете запустить это из командной строки:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
(Я не буду перечислять их здесь. На моем компьютере с Windows 10 их 286).
Это перечисляет расширения. Чтобы увидеть больше информации, включая информацию о расширениях:
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts /s
Итак, как вы можете видеть, этот, казалось бы, невинный вопрос на самом деле может быть довольно сложной темой. Я полагаю, что я обосновал, почему вопрос должен быть достаточно конкретным, чтобы иметь возможность получить полный ответ, в котором полностью рассматривается, как один компонент Windows может определять расширения имени файла. В ореховой оболочке для Windows нет только одного единственного ответа, поскольку в Windows есть несколько компонентов, которые ведут себя по-разному. Надеюсь, я начал показывать это и указал на некоторые дополнительные ресурсы, которые показывают соответствующую информацию.
источник