我是一个完全的.bat编程初学者,请耐心等待:
我一直在尝试将从科学仪器收集的大量Unicode文件转换为ANSI格式。此外,我需要将所有这些文件转换为.txt文件。
现在,第二部分相当简单——我曾经使用“批量重命名实用程序”进行操作,并且到目前为止,我已经能够使其工作,我想。
第一部分应该很简单,而且我找到了多个类似的问题,但它们似乎都是针对powershell,单个文件或以特定编码结束的长时间讨论。 有一个问题与我的完全匹配, 但是尝试他们建议的代码后,只有一半的文件可以正常传输,另一半则以无意义的代码形式出现。我一直在使用以下代码:
for %%F in (*.001) do ren "*SS.001" "*SS1.001"
for %%F in (*.001) do type "%%F" >"%%~nF.txt"
然后删除/移动多余的文件。
我以前曾经成功地手工转换过这些文件(左边),但是当前的编码似乎失败了(右边): 手工编码与程序编码的文件并排比较
我的问题是:
- 我从仪器中获得的单个文件是否可能处于多种编码(部分UTF-8,部分UTF-16)中,这会破坏我的程序(或更可能的是,我使用的编码太小了)?如果是这种情况,我会理解为什么像平方和度符号这样的特殊字符会被破坏,但不是数据,它只是数字。
- 我的代码中是否有一些明显的错字导致这种奇怪的错误?
- 如果错误可能嵌入在我正在使用的unicode(8 vs 16 vs 32)或ANSI(1252 vs ???)中,我该如何检查?
- 我该如何修复这个代码使其工作?
如果有更好的问题需要问或需要添加其他信息,请告诉我。谢谢!
Windows-1252
。 - Mark Tolonen