此問題接續於another question about selectively appending lines from one file to another。Windows命令行/ shell - 丟棄UTF-8 BOM
我正在使用的正則表達式在匹配行以保持/放棄時工作得很好。問題在於該文件是由一堆其他文件組成的,有時候我希望作爲UTF-8編碼文件的第一行開始。這意味着findstr
命令返回類似:
LineToKeep that started out as the first line in its file
LineToKeep another
LineToKeep more lines
LineToKeep that started out as the first line in its file
LineToKeep more
它保證的除外BOM字節,該線路將始終以「LineToKeep」開始。如何擺脫這三個UTF-8 BOM字節,因爲這些Windows Shell命令無法正確處理它們?
我希望有一種方法可以將它們移除,或者可以修改上一個問題中的findstr
命令。
因爲我知道每行必須以「LineToKeep」或「∩╗┐LineToKeep」開頭,所以我認爲有一種方法可以爲每行計算if (Line[3:10] == "LineToKeep") { Line = Line[3:]; }
之類的內容。
..這就是爲什麼perl應該隨每個操作系統一起提供;-) – 2012-10-12 01:32:18
你有沒有想過使用Powershell而不是vanilla命令解釋器?做這樣的事情將是微不足道的。 Windows shell不太喜歡Unicode。 – kprobst
我將在Visual Studio的生成前/生成後事件中運行腳本。根據http://stackoverflow.com/questions/6500320/post-build-event-execute-powershell,運行PowerShell腳本可能是一個選項。它會覺得有點像外部解決方案。 – Kache