Windows11 PowerShell执行test.bat出现乱码及命令识别错误求助
问题原因与解决办法
问题根源
PowerShell使用echo "内容" > 文件时,默认会以**UTF-16LE(Unicode)**编码保存文件,但Windows执行批处理的CMD环境默认采用OEM编码(日文系统对应Shift-JIS)。编码不匹配导致CMD无法正确解析文件内容,出现乱码和命令识别失败的情况。
解决方法
方法1:PowerShell中指定编码创建文件
使用Out-File或Set-Content命令,明确指定编码为OEM,确保CMD能正确读取:
# 用Out-File创建 "echo test" | Out-File -FilePath test.bat -Encoding OEM # 或用Set-Content创建 Set-Content -Path test.bat -Value "echo test" -Encoding OEM
方法2:直接在CMD环境中创建文件
切换到CMD窗口后执行以下命令,CMD会自动用兼容的编码保存批处理文件:
echo echo test > test.bat
执行上述任意一种方法创建的test.bat,再运行就能正常输出test。
内容的提问来源于stack exchange,提问作者ten
相关产品推荐
相关产品推荐

