C#Post Build Batch文件返回''''

时间:2016-06-23 12:30:45

标签: c# windows batch-file build-events

我有一个相当大的解决方案,并且在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 Build是:

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

我也试过

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

两者都返回同一行:

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

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

当我管道到文件时,虽然我和我在构建窗口的输出中一样。

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

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

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

这看起来像编码错误。

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

(BOM是一个字节顺序标记 - 一个可选标题,表示编码文件是大端还是小端。并非所有文件都能正确处理这些文件。)