标题: [文本处理] [已解决]如何把文件夹下*.reg的ANSI编码格式文件,转换为UTF-16LE编码格式? [打印本页]
作者: HANPP7 时间: 2022-12-15 15:10 标题: [已解决]如何把文件夹下*.reg的ANSI编码格式文件,转换为UTF-16LE编码格式?
本帖最后由 HANPP7 于 2022-12-15 16:54 编辑
文件夹下有三个文件 1.reg,2.reg,3.reg,编码格式为ANSI,现在想要UTF-16LE的编码格式,有什么办法一次性全转换吗?
作者: Batcher 时间: 2022-12-15 15:53
回复 1# HANPP7
test.bat- @echo off
- cd /d "%~dp0"
- powershell -c "Get-ChildItem *.reg | ForEach-Object {$NewName = $_.Basename + 'New' + $_.Extension; Get-Content $_ | Out-File -Encoding unicode $NewName}"
复制代码
作者: HANPP7 时间: 2022-12-15 16:08
回复 2# Batcher
可用,万分感谢!
作者: HANPP7 时间: 2022-12-15 16:56
回复 2# Batcher
这个是不是只在Windows10及其以上才可以,我看到里面有使用power shell
作者: Batcher 时间: 2022-12-15 17:12
回复 4# HANPP7
你需要在什么系统里面执行呢?
作者: czjt1234 时间: 2022-12-15 18:20
回复 4# HANPP7
win7就有啊
作者: hfxiang 时间: 2022-12-17 18:36
可采用论坛went大神的原创工具coder转换( 下载地址见: http://bbs.bathome.net/thread-57518-1-1.html ),参考脚本如下:- @echo off
- rem 保存为ANSI格式
- cd /d "%~dp0"
- for /f "tokens=*" %%a in ('dir /s/b/a-d "*.reg"') do (
- coder -c auto UTF-16_LE -f "%%~fa">"%%~dpna__tmp__%%~xa"
- move /y "%%~dpna__tmp__%%~xa" "%%~fa">nul 2>&1
- )
复制代码
作者: terse 时间: 2022-12-17 22:02
运行前备份 确定源文件编码为ANSI- 1>1/* :
- @echo off
- dir /b /a-d *.reg| cscript -nologo -e:jscript "%~f0"
- pause&exit
- */
- while (!WSH.StdIn.AtEndOfStream){
- var file = WScript.StdIn.ReadLine();
- binRead( file );
- }
- function binRead( path ) {
- var stream, cont, content;
- stream = new ActiveXObject("ADODB.Stream");
- stream.Type = 2;
- stream.charset = 'gbk';
- stream.open();
- stream.loadFromFile(path);
- content = stream.ReadText();
- stream.Position = 0
- stream.SetEOS()
- stream.Type = 2;
- stream.charset = 'UTF-16';
- stream.writetext(content);
- stream.SaveToFile(path, 2);
- stream.Close
- }
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |