File Powershell DSC文件内容中的奇怪字符

File Powershell DSC文件内容中的奇怪字符,file,powershell,encoding,dsc,File,Powershell,Encoding,Dsc,我是PowerShell DSC的新手,我正在编写一个脚本,以确保某个文件的内容是否正确。这相当简单: File BatFile { Ensure = "Present" DestinationPath = $BatPath Contents = "start $($FullPath)" Type = "File" } 当我在记事本中打开文件时,内容似乎没有问题。但是,当我执行它时,会收到

我是PowerShell DSC的新手,我正在编写一个脚本,以确保某个文件的内容是否正确。这相当简单:

File BatFile
{
   Ensure          = "Present"
   DestinationPath = $BatPath 
   Contents        = "start $($FullPath)" 
   Type            = "File"            
}
当我在记事本中打开文件时,内容似乎没有问题。但是,当我执行它时,会收到一条错误消息:

C:\Directory>start C:\Directory\AppIWantToStart.exe
'start' is not recognized as an internal or external command, operable program or batch file.
突然有了这些奇怪的东西∩╗┐ 文件中的字符!我假设这是某种编码问题,但我不知道如何解决这个问题。有人知道解决这个问题的方法吗

编辑:显然,这些字符是字节顺序标记(BOM),由于编码原因,不会显示在记事本中。参见主题。 我的问题是:使用DSC文件资源,我可以在没有BOM的情况下写入文件内容吗


(是的,我正在尝试在PowerShell脚本中创建批处理脚本。这可能很奇怪,但与此问题无关!)

文件资源没有
编码属性,出于某种原因,我认为它使用UTF-16 w/BOM编写。您可以尝试使用脚本资源

Script BatFile
{
  SetScript = {
    "start $($FullPath)" | Set-Content -Path $BatPath -Force
  }
  TestScript = { Test-Path -Path $BatPath }
  GetScript = { @{BatFileExists = (Test-Path $BatPath )} }
}

它看起来不像是复制品。这个答案并不能解决这个问题。问题在于如何避免DSC生成的文件中出现BOM,而不是在生成后如何修复。