标题: [文本处理] 求一个批量把asp文件另存为UTF8格式批处理 [打印本页]
作者: dusttosky 时间: 2023-12-27 17:38 标题: 求一个批量把asp文件另存为UTF8格式批处理
文件里面多有个.asp文件,和多个子文件夹的.asp文件.
现在需要用手工一个个文件打开,选中用记事本打开,然后再另存为utf8格式,覆盖保存. 由于有太多个文件, 请问批处理可以解决这类手工操作吗?
作者: wanghan519 时间: 2023-12-27 17:52
写了个大概,但系统自带powershell输出的utf8是带bom的,如果需要不带bom的需要调用.net对象重写- gci *.txt -Recurse | %{gc $_.FullName -Encoding Oem | Out-File tmp.txt -Encoding utf8; move tmp.txt $_.FullName -Force}
复制代码
作者: 77七 时间: 2023-12-27 20:35
- @echo off
- rem 下载 http://bcn.bathome.net/tool/coder.exe
- cd /d "%~dp0"
- for /r %%i in (*.asp) do (
- coder -c auto utf-8 -f "%%i" >$
- move $ "%%i"
- )
- pause
复制代码
作者: Five66 时间: 2023-12-28 08:02
原来的asp文件编码是啥?
作者: aloha20200628 时间: 2023-12-28 18:08
如下代码存为批处理脚本,如test.cmd或test.bat,运行结果会将当前目录(包括子目录)下全部*.asp文件转为无头标BOM的utf-8编码文件。
假设*.asp是简中编码gb2312(即记事本的ANSI编码)。批处理脚本文件存于当前目录运行。- @set @v=1 /*
- @echo off &dir /b/s/a-d *.asp|cscript /e:jscript "%~f0" &exit/b
- */
- var wsIn=WSH.stdin;
- var ads=new ActiveXObject('adodb.stream');
- var fso=new ActiveXObject('scripting.filesystemobject');
- while (!wsIn.atendofstream) {
- var F=wsIn.readline()
- ads.type=2; ads.mode=3; ads.charset='gb2312'; ads.open(); ads.loadfromfile(F);
- var all=ads.readtext(); ads.close();
- ads.charset='utf-8'; ads.open(); ads.writetext(all); ads.savetofile(F+'.tmp',2); ads.close();
- ads.type=1; ads.open(); ads.loadfromfile(F+'.tmp');
- ads.position=3; var all_3=ads.read(); ads.close();
- ads.open(); ads.write(all_3); ads.savetofile(F,2); ads.close();
- fso.deletefile(F+'.tmp');
- }
- WSH.quit();
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |