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

[文本处理] 【已解决】批处理文本内容的检查相关,谢谢你了

本帖最后由 灯塔彭于晏 于 2021-5-20 12:39 编辑

谢谢你了先。

现有一个1.txt,内容如下:
  1. [#魔法少女まどか☆マギカ ひとりぼっちはさびしいけれど - 九十九  - pixiv|https://baidu.com/artworks/21383799]
  2. [#魔法少女まどか☆マギカ よろしい、ならば - hatsuko  - pixiv|https://baidu.com/artworks/17587458]
  3. [#魔法少女まどか☆マギカ . - 望月けい  - pixiv|https://baidu.com/artworks/88431986]
  4. [#赤い影 世界を変える力が - hatsuko  - pixiv|https://baidu.com/artworks/16996640]
  5. [#魔法少女まどか☆マギカ 魔法少女 - vient  - pixiv|https://baidu.com/artworks/31068063]
  6. [#魔法少女まどか☆マギカ 奇迹の呗 - 觉醒  - pixiv|https://baidu.com/artworks/17345647]
  7. 魔法少女小圆
  8. [#魔法少女まどか☆マギカ ひとりぼっちはさびしいけれど - 九十九  - pixiv|https://baidu.com/artworks/21383799]
  9. [#魔法少女まどか☆マギカ よろしい、ならば - hatsuko  - pixiv|https://baidu.com/artworks/17587458]
  10. [#魔法少女まどか☆マギカ . - 望月けい  - pixiv|https://baidu.com/artworks/88431986]
  11. [#赤い影 世界を変える力が - hatsuko  - pixiv|https://baidu.com/artworks/16996640]
  12. [#魔法少女まどか☆マギカ 魔法少女 - vient  - pixiv|https://baidu.com/artworks/31068063]
  13. [#魔法少女まどか☆マギカ 奇迹の呗 - 觉醒  - pixiv|https://baidu.com/artworks/17345647]
  14. 魔法少女小圆
  15. 鹿目圆
  16. 晓美焰
  17. [#魔法少女まどか☆マギカ ひとりぼっちはさびしいけれど - 九十九  - pixiv|https://baidu.com/artworks/21383799]
  18. [#魔法少女まどか☆マギカ よろしい、ならば - hatsuko  - pixiv|https://baidu.com/artworks/17587458]
  19. [#魔法少女まどか☆マギカ . - 望月けい  - pixiv|https://baidu.com/artworks/88431986]
  20. [#赤い影 世界を変える力が - hatsuko  - pixiv|https://baidu.com/artworks/16996640]
  21. [#魔法少女まどか☆マギカ 魔法少女 - vient  - pixiv|https://baidu.com/artworks/31068063]
  22. [#魔法少女まどか☆マギカ 奇迹の呗 - 觉醒  - pixiv|https://baidu.com/artworks/17345647]
  23. 魔法少女小圆
  24. 鹿目圆
复制代码
上述内容为 3组内容(实际上更多) ,每组内容为6个[#开头的行 + 几个中文字的行 ,其中 [#开头的行是固定为6个的,不能多也不能少,而中文字的行,几行都行,没有要求。
每行内容最后的数字,和桌面上的  数字.jpg 文件是对应的。

现在的需求是:
1、检查1.txt中,每组内容中 [# 开头的行,是否为固定6个 。因为有时候会保存出错,[#少了1个或者多了1个。
2、检查1.txt中,每组内容最后的数字,在桌面上是否存在对应的 数字.jpg 文件。

比如文本中第一行的:[#魔法少女まどか☆マギカ ひとりぼっちはさびしいけれど - 九十九  - pixiv|https://baidu.com/artworks/21383799] , 桌面上应该要有一个 21383799.jpg 的文件。

检查的结果分别输出到A.txt(记录[#数量不对的行数)和B.txt (记录缺少文件的数字,每行1个)中  ,如果都对,就不输出相关TXT。

谢谢~谢谢!

抱歉,我似乎上传不了附件,就劳烦您复制代码保存了。抱歉!

TOP

本帖最后由 newswan 于 2021-5-20 06:44 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set path=%gnupath%;%path%
  4. set r=0
  5. set n=0
  6. for /f "delims=" %%a in (1.txt) do (
  7.     set /a r+=1
  8.     set s=%%a
  9.     if "!s:~0,1!"=="[" (
  10.         set /a n+=1
  11.         for /f "usebackq delims=" %%a in (`echo "%%a" ^| grep -E -o '[0-9]+'`) do (
  12.             if not exist "%USERPROFILE%\desktop\%%a.jpg" echo !r!: %%a >>a.txt
  13.         )
  14.     ) else (
  15.         if !n! neq 0 (
  16.             if !n! neq 6 echo !r!: !n! >>b.txt
  17.         )
  18.         set /a n=0
  19.     )
  20. )
复制代码
语法错误,已修改

TOP

回复 3# newswan


    似乎是没有效果的。

TOP

  1. @echo off
  2. set n=0
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=1* delims=:" %%a in ('findstr /n .* 1.txt') do (
  5.     set "str=%%b"
  6.     if "!str:~,2!"=="[#" (
  7.         set "str1=%%~nb"
  8.         if not exist "%HOMEPATH%\Desktop\!str1:~,-1!.jpg" echo,%%a:不存在文件!str1:~,-1!.jpg!>>b.txt
  9.         set /a n+=1
  10.     ) else (
  11.         if not !n!==0 if not !n!==6 echo,第%%a行上面一组有!n!行组成!>>a.txt
  12.         set n=0
  13.     )
  14. )
  15. pause
复制代码
批处理文件和1.txt放在同一个目录。
1

评分人数

TOP

本帖最后由 xp3000 于 2021-5-20 17:47 编辑
  1. @echo off&Setlocal EnableDelayedExpansion
  2. set m=0&set n=0&type nul>"不存在的文件.TXT"&echo 开始读取文件 1.txt……
  3. @for /f "delims=" %%a in ('type 1.txt^|findstr /n .*') do (set /a n+=1&set A=%%a
  4.     @for /f tokens^=1^,2^,3^,*^ delims^=:""^| %%c in ('echo "!A!"^|findstr /r /n /C:"^\[.*http.*\]"') do (
  5.         set C=%%c&set D=%%d&set E=%%e&set F=%%~f&set F=!F:^]^"=!&set fn=%%~nf&set fn=!fn:^]^"=!)
  6.     if !n!==!D! (set /a m+=1
  7.     if !m! equ 1 echo._____________________&echo.
  8.         echo 检测第!n!行:!F!
  9.     if not exist "%USERPROFILE%\desktop\!fn!.jpg" (echo 桌面没有:!fn!.jpg&echo !fn!.jpg>>"不存在的文件.TXT") else (echo 桌面发现:!fn!.jpg)
  10.              ) else (
  11.     if !m! neq 0 echo.& echo   以上段落共:!m! 行&echo._____________________&echo.
  12.           echo  !n!行非匹配,中断行!D!&set m=0
  13.     )
  14. )
  15. echo._____________________&echo.&echo    1.txt 共 !n! 行&echo.
  16. pause
复制代码
整理了下,全部下划杠分段好看一点
1

评分人数

    • 灯塔彭于晏: 谢谢大giegie,但这个可以检测缺的文件,不 ...技术 + 1

TOP

返回列表