我有一个相当大的解决方案,并且在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文件中,我得到了命令的输出,但在控制台窗口中输入命令,我得到了同样的错误。
这不是我的机器,所有开发人员都有同样的问题。
我该如何解决这个问题?
答案 0 :(得分:2)
这看起来像编码错误。
批处理文件需要是ASCII ...并且您可能拥有带BOM的UTF-8。
(BOM是一个字节顺序标记 - 一个可选标题,表示编码文件是大端还是小端。并非所有文件都能正确处理这些文件。)