1

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

后期构建是:

"$(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 文件中,我得到了命令的输出,但在输入命令的控制台窗口中,我得到了同样的错误。

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

我怎样才能解决这个问题?

4

1 回答 1

2

这看起来像一个编码错误。

批处理文件需要是 ASCII ......你可能有一个带有 BOM 的 UTF-8。

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

于 2016-06-23T12:41:36.893 回答