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

纯批,转换将删除所有空行和所有行首鸣声符(一般不会存在),支持含有特殊字符的文件。
(也可以在第一个for循环中加上findstr命令改造成可以转换空行的脚本,但如果被转换文件行首有冒号就会被删除)
下面的BAT要保存为ANSI编码。
  1. @echo off
  2. :Load
  3. if exist "%~1" goto Read
  4. cls&echo 未指定或指定的源文件不存在。请拖拽文件入内并按下回车键,或以文件完整路径为第一个参数(%%1)重新运行本批处理。
  5. set /p S=
  6. call :Load "%S:"=%"
  7. :Read
  8. set F="%~dp1%~n1_ANSI%~x1"
  9. if exist %F% del %F%
  10. set I=原始文件:"%~1"&set O=目标文件:%F%&set T0=#    注意:&set T1=#    转换过程中不会更改原始文件。&set T2=#    输出文件中将删除所有并在末尾创建一空白行。&set T3=#    每行开头的鸣声符(如果存在的话)将被删除。&set T4=#    不能识别的字符将输出问号。&set W=#    请稍等。
  11. >nul chcp 65001
  12. set Str=Str_%date:~3%_%time: =0%
  13. for /f "usebackq delims=" %%i in ("%~1") do >nul set %Str%=%%i&call :Convert
  14. start notepad.exe %F%
  15. ping 127.1 -n 1 >nul
  16. exit
  17. :Convert
  18. if not defined N >nul chcp 936&echo %I%&echo %O%&echo;&echo %T0%&echo;&echo %T1%&echo %T2%&echo %T3%&echo %T4%&echo;&<nul set /p =%W%&set N=1
  19. for /f "tokens=1* delims=" %%j in ('set %Str%') do >>%F% echo;%%k
  20. goto :eof
复制代码

TOP

返回列表