[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求一个批量把asp文件另存为UTF8格式批处理

文件里面多有个.asp文件,和多个子文件夹的.asp文件.
现在需要用手工一个个文件打开,选中用记事本打开,然后再另存为utf8格式,覆盖保存.   由于有太多个文件, 请问批处理可以解决这类手工操作吗?

写了个大概,但系统自带powershell输出的utf8是带bom的,如果需要不带bom的需要调用.net对象重写
  1. gci *.txt -Recurse | %{gc $_.FullName -Encoding Oem | Out-File tmp.txt -Encoding utf8; move tmp.txt $_.FullName -Force}
复制代码

TOP

  1. @echo off
  2. rem 下载 http://bcn.bathome.net/tool/coder.exe
  3. cd /d "%~dp0"
  4. for /r %%i in (*.asp) do (
  5. coder -c auto utf-8 -f "%%i" >$
  6. move $ "%%i"
  7. )
  8. pause
复制代码
bat小白,请多指教!谢谢!

TOP

原来的asp文件编码是啥?

TOP


如下代码存为批处理脚本,如test.cmd或test.bat,运行结果会将当前目录(包括子目录)下全部*.asp文件转为无头标BOM的utf-8编码文件。
假设*.asp是简中编码gb2312(即记事本的ANSI编码)。批处理脚本文件存于当前目录运行。
  1. @set @v=1 /*
  2. @echo off &dir /b/s/a-d *.asp|cscript /e:jscript "%~f0" &exit/b
  3. */
  4. var wsIn=WSH.stdin;
  5. var ads=new ActiveXObject('adodb.stream');
  6. var fso=new ActiveXObject('scripting.filesystemobject');
  7. while (!wsIn.atendofstream) {
  8. var F=wsIn.readline()
  9. ads.type=2; ads.mode=3; ads.charset='gb2312'; ads.open(); ads.loadfromfile(F);
  10. var all=ads.readtext(); ads.close();
  11. ads.charset='utf-8'; ads.open(); ads.writetext(all); ads.savetofile(F+'.tmp',2); ads.close();
  12. ads.type=1; ads.open(); ads.loadfromfile(F+'.tmp');
  13. ads.position=3; var all_3=ads.read(); ads.close();
  14. ads.open(); ads.write(all_3); ads.savetofile(F,2); ads.close();
  15. fso.deletefile(F+'.tmp');
  16. }
  17. WSH.quit();
复制代码

TOP

返回列表