bat用文本读取所有h和cpp,并且另存为带有bom的utf8
时间: 2024-11-10 14:26:27 浏览: 8
在Windows批处理文件(bat)中,你可以使用`type`, `findstr`, 和 `copy` 命令来读取特定扩展名(如.h和.cpp)的文件内容,然后通过`copy`命令将它们转换为UTF-8编码并添加BOM头(Byte Order Mark)。以下是一个简单的步骤描述:
1. 首先,你需要确定文件的位置,假设都在同一目录下,可以使用 `for /f` 循环遍历。
```cmd
for /f "delims=" %%i in ('dir *.h *.cpp /b') do (
```
这里的 `%%i` 将依次代表找到的每个文件名。
2. 然后使用 `type` 命令获取文件内容,接着使用 `find /v /n ""` 来移除行编号,如果需要的话。
```cmd
set "file_content=(!file_name!)"
type "!file_name!" | find /v /n "" > "%temp%\temp.txt"
```
这里使用临时文件存储内容,因为`type`命令会直接输出到屏幕,不容易保存。
3. 使用 `copy` 命令复制临时文件并设置为UTF-8-BOM格式。`/b` 表示二进制模式,`/a+` 添加BOM头,`/y` 强制覆盖,`/i` 忽略错误。
```cmd
copy /b %temp%\temp.txt + bom utf8 "%temp%\temp_utf8.txt" >> "%~ni_utf8.bom"
```
这行将创建一个新的UTF-8文件,包含BOM。
4. 最后别忘了删除临时文件。
```cmd
del %temp%\temp.txt
)
```
请注意,上述过程可能会因系统设置、权限等差异而有所调整,实际操作时可能需要检查文件路径和权限。另外,不是所有的文本编辑器都支持BOM头,所以在某些情况下打开文件可能看到额外的字节。
阅读全文