批处理文件类型始终为 exe,而不是 Shell 命令。即使我删除 exe 文件关联并添加 batfile 关联,它也不会生效。有人能帮助我吗?
答案1
尝试将文件扩展名更改为.bat
。
如果看不到文件的扩展名,请打开文件资源管理器,然后转到查看菜单->选项...然后在看法文件夹选项对话框的选项卡,取消选中“隐藏已知文件类型的扩展名”。
然后只需将扩展名从原来的更改为.bat
答案2
你的批处理文件类型始终为 exe,而不是 Shell 命令语句看起来有点不清楚。
但是,Windows 命令行解释器处理默认的方式没有任何区别或区别可执行文件 .COM
,.EXE
,.BAT
和.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" %*
仅供参考:PathExt
环境变量返回操作系统认为是的文件扩展名的列表可执行文件当执行不包含扩展名的命令行时,命令解释器 ( cmd.exe
) 使用此环境变量的值来确定查找哪些扩展名以及查找顺序。