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,表示编码文件是大端还是小端。并不是所有的东西都能正确处理这些文件。)
我有一个相当大的解决方案,在 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,表示编码文件是大端还是小端。并不是所有的东西都能正确处理这些文件。)