下载Batch文件时的JS编码问题:LF换行符导致运行异常
解决批处理文件换行符格式问题
批处理脚本必须使用**Windows风格的CRLF(\r\n)**换行符,你当前生成的result字符串用的是Unix风格的LF(\n),这才导致下载后的.bat文件运行报错。只需在生成Blob前替换换行符即可解决问题。
修改你的JavaScript下载代码如下:
var dwn = $('#download') // Download button // 全局替换Unix换行符LF为Windows换行符CRLF var windowsLineEndingResult = result.replace(/\n/g, '\r\n'); dwn.download = 'console-img.bat' dwn.href = URL.createObjectURL(new Blob([windowsLineEndingResult], { type: 'text/plain; charset=utf-8' }))
关键说明:
replace(/\n/g, '\r\n'):把字符串里所有的LF(\n)替换成CRLF(\r\n),让文件格式符合Windows批处理的要求。- 指定
charset=utf-8:和批处理代码里的chcp 65001对应,避免ANSI彩色字符出现乱码。
修改后重新下载.bat文件,用记事本查看会显示为Windows(CRLF)格式,运行时就能正常执行。
内容的提问来源于stack exchange,提问作者mmm107
相关产品推荐
相关产品推荐

