You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows批处理中检测.gz与.mps.gz文件后缀

批处理脚本判断文件后缀问题

需求

我希望运行如下命令:

C:\> mybatch.bat somefile.gz

或是:

C:\> mybatch.bat somefile.mps.gz

需要在批处理脚本内判断传入的参数是否以.gz或.mps.gz结尾。

无效写法

以下写法无法生效:

if findstr ".mps.gz" %1 (
    echo ".mps.gz file"
) else (
    echo ".gz file"
)

改进过程

第一次改进方案

使用findstr结合错误码判断的实现:

set ZIP="C:\Program Files\7-Zip\7zFM.exe"

echo %1|findstr /i /L /e /C:".mps.gz">nul&if errorlevel 1 ( 
    echo ".gz only %1"
    %ZIP% %1
) else (
    echo ".mps.gz %1"
    call freempsgz2lpt.bat %1
)

pause -1

该方案在命令行中运行正常,但将批处理与.gz后缀关联后,在Windows资源管理器中双击文件时无法识别.mps.gz后缀。

第二次调整

修改代码为:

echo %1|findstr /i /L /e /C:".mps.gz""">nul&if errorlevel 1 ( ...

调整后,脚本在Windows资源管理器中双击可正常运行,但命令行环境下无法运行,此结果可接受。


内容的提问来源于stack exchange,提问作者Michael Hecht

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:45:31