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


    谢谢

TOP

回复 14# hfxiang

TOP

回复 13# qixiaobin0715


    成功 万分感谢

TOP

回复 1# qd2024

下载gawk( http://bcn.bathome.net/tool/4.1.3/gawk.exe ),确保文本及脚本都已以ANSI编码格式保存,执行后即可获取想要结果
  1. gawk -F"^★★★★★" "/^★★★★★/{F_n=gensub(/[!&<>/\|:*?\"]+/,\"\",\"g\",$2)}F_n{print $0^>F_n}" 文本.txt
复制代码

TOP

回复 10# qd2024
可以这样处理:
1.打开要处理的word文件;
2.另存为中,选择文件类型为纯文本文件,对话框中文本编码中选择其它编码中的GB2312,确定;
3.保存的文本中删除Module1 unit1这一行前面的所有行,删除文本中每行前面的全角空格;
4.将下面代码保存为ANSI编码,运行批处理文件。
  1. @echo off
  2. findstr /n /rb "Module[0-9]*.unit[0-9]" 1.txt>1.log
  3. for /f "delims=:" %%a in (1.log) do set _%%a=true
  4. del 1.log
  5. for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
  6.     if defined _%%i set "filename=%%j.txt"
  7.     set "str=%%j"
  8.     setlocal enabledelayedexpansion
  9.     echo,!str!>>!filename!
  10.     endlocal
  11. )
  12. pause
复制代码

TOP

处理一下特殊字符吧
  1. @echo off
  2. set/p w=<%~fs0 >nul
  3. set "s=★★★★★"
  4. setlocal enabledelayedexpansion
  5. for /f "tokens=*" %%i in (1.txt) do (
  6.     set "str=%%~i"
  7.     if "!str:~,5!" == "!s!" (
  8.        set "file=!str:*%s%=!.txt"
  9.        set "filename="
  10.        call :loop "!file!"
  11.     ) else if defined filename (>>"!filename!" echo;!str!)
  12. )
  13. pause & exit
  14. :loop
  15. for /f tokens^=1*delims^=:\/*?^<^>^" %%a in ("%~1") do (
  16.      set filename=!filename!%%a
  17.      call :loop "%%b"
  18. )
  19. exit /b
复制代码

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('type "文本.txt" ^| findstr /n .*') do (
  3. set "line=%%a"
  4. setlocal enabledelayedexpansion
  5. set "line=!line:*:=!"
  6. set "line2=!line:★★★★★=!"
  7. if not "!line2!" equ "!line!" (
  8. if not "!line2!" equ "★★★★★=" (
  9. set "line2=!line2:?=!"
  10. >xxx.temp echo !line2!
  11. )
  12. )
  13. set /p filename=<xxx.temp
  14. if "!line2!" equ "★★★★★=" (
  15. (echo,!line!)>>"!filename!.txt"
  16. )
  17. if "!line2!" equ "!line!" (
  18. (echo,!line!)>>"!filename!.txt"
  19. )
  20. endlocal
  21. )
  22. del xxx.temp
  23. pause
复制代码

我想了很久,还是利用了临时文件...通用性不大...
bat小白,请多指教!谢谢!

TOP

回复 8# qixiaobin0715


    链接:https://pan.baidu.com/s/1HW-cqi8FXobeeYjs-3wkQw?pwd=28h1
提取码:28h1
--来自百度网盘超级会员V9的分享

TOP

回复 8# qixiaobin0715

大佬,我发现一个问题,像下面这行(倒数第11行),从"!The first"开始都被当成变量省略了
Lingling: Sorry! The first prize is only the book called Around the World in 80 Day!
bat小白,请多指教!谢谢!

TOP

本帖最后由 qixiaobin0715 于 2023-2-2 15:29 编辑

你把源文件发到网盘上,帮你测试看看。
复制你的示范文本没问题。

TOP

回复 4# qixiaobin0715


提示   
系统找不到指定的路径。

不会用了

TOP

回复 5# qixiaobin0715


    如果不做标记,怎样实现 ,我的目的是,给孩子把英语文章 一篇一篇 的放在单独的TXT文件里,
怎么做能更简单

感谢

TOP

对示范中的文本来说,实际上不做标记也能实现。

TOP

批处理保存为ANSI编码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. findstr /n /rb "★★★★★" 1.txt>1.log
  4. for /f "delims=:" %%a in (1.log) do set _%%a=true
  5. del 1.log
  6. for /f "tokens=* delims=★" %%i in (1.txt) do (
  7.     set /a n+=1
  8.     if defined _!n! (
  9.         for /f "tokens=1,2" %%a in ("%%i") do set filename=%%a %%b.txt
  10.     )
  11.     echo,%%i>>!filename!
  12. )
  13. pause
复制代码

TOP

回复 2# qixiaobin0715


    收到 谢谢
如有非法字符,直接删除就行

TOP

返回列表