C# Post 生成批处理文件 returns '´╗┐'

C# Post Build Batch file returns '´╗┐'

我有一个相当大的解决方案,在 Post Build 中的一个项目文件中,我正在执行一个批处理文件。

其中的内容是:

echo %DevEnv%
echo %2
echo %1App-%DevEnv%.config
echo %1App.config
attrib -r %1App.config
copy %1App-%DevEnv%.config %1App.config 

rem We are also copying the machine specific config file to ECIHost too
echo %1
cd %1

echo attrib -r ..\ECIHost\ECIHost\App.config 
attrib -r ..\ECIHost\ECIHost\App.config 

echo copy App-%DevEnv%.config ..\ECIHost\ECIHost\App.config 
copy App-%DevEnv%.config ..\ECIHost\ECIHost\App.config 

Post 版本是:

"$(ProjectDir)CopyAppConfig.bat" "$(ProjectDir)" %DevEnv% >     "c:\build.txt"

我也试过了

cd "$(ProjectDir)"
CopyAppConfig.bat "$(ProjectDir)" %DevEnv% > "c:\build.txt"

两者return同一行:

'´╗┐' is not recognized as an internal or external command, operable program or batch file.

当我 运行 来自控制台的批处理文件时,它会回显并成功完成所有操作。

当我通过管道传输到一个文件时,我得到的结果与我在构建输出中所做的相同 window。

CopyAppConfig.bat > c:\temp\output.txt

在 output.txt 文件中,我得到了命令的输出,但在控制台 window 中输入命令时,我得到了同样的错误。

这不是我的机器,所有开发者都有同样的问题。

我该如何解决这个问题?

这看起来像是编码错误。

批处理文件需要是 ASCII...并且您可能有带 BOM 的 UTF-8。

(BOM 是一个 byte-order-mark -- 一个可选的 header,表示编码文件是大端还是小端。并不是所有的东西都能正确处理这些文件。)