Тип пакетного файла всегда принимает exe вместо команды Shell. Даже если я удаляю ассоциацию файлов exe и добавляю ассоциацию batfile, это не берет. Может кто-нибудь мне помочь?

2 ответа2

0

Попробуйте изменить расширение файла на .bat .

Если вы не видите расширений файлов, откройте проводник и перейдите в меню "Вид" -> « Параметры» ... Затем на вкладке « Вид» диалогового окна "Параметры папки" снимите флажок "Скрыть расширения для известных типов файлов".

Затем просто измените расширение с .bat

0

Ваш тип командного файла всегда принимает как exe вместо командного оператора Shell выглядит немного неясным.
Однако нет никакой разницы или различий в том, как интерпретатор командной строки Windows обрабатывает исполняемые файлы по умолчанию .COM и .CMD .

Доказательство: следующий пакетный скрипт анализирует значение по умолчанию переменной среды PathExt .COM;.EXE;.BAT;.CMD и отображает соответствующие выходные значения из команд assoc и ftype соответственно:

@ECHO OFF
SETLOCAL EnableExtensions
set "parse_ext=%pathext:;=","%"
@for %%G in ("%parse_ext%") do (
  @for /F "tokens=1,* delims==" %%H in ('assoc %%G') do (
    @for /F "tokens=1,* delims==" %%J in ('ftype %%I') do (
      @echo %%H %%I     %%K
    )
  ) 
)

Выход:

==>D:\bat\SU\969327.bat
.COM    comfile         "%1" %*
.EXE    exefile         "%1" %*
.BAT    batfile         "%1" %*
.CMD    cmdfile         "%1" %*

Fyi: переменная среды PathExt возвращает список расширений файлов, которые операционная система считает исполняемыми. При выполнении командной строки, которая не содержит расширения, интерпретатор команд (cmd.exe) использует значение этой переменной среды, чтобы определить, какие расширения нужно искать и в каком порядке.

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