找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26856|回复: 7

[文本处理] 求删除文件内容的批处理

[复制链接]
发表于 2015-9-17 15:27:37 | 显示全部楼层 |阅读模式
删除文本里面时间为0点至早8点的内容
文件名是   ch_8.6.lsv

文件在D盘 根目录不确定 XP系统

"23:41:22 321 阿萨德 倒萨                                       保留                     
"23:57:42 223 qedsadas                                        保留
"00:01:11 333 dsa dsa a                                        删除
"00:01:11 000   啊啊2... 是是3    ".” 的撒打                删除
"02:05:22 ssd  03:08:48 asd sadsa dsad               删除
"08:35:11 大声道阿萨德三等功反倒是桂丰大厦               保留
"09:01:11 水电费双方都撒 10:08:09 反倒是                保留
发表于 2015-9-17 15:37:42 | 显示全部楼层
本帖最后由 flyinnet9 于 2015-9-17 16:29 编辑

目录不确定,你这是让人全盘搜索的节奏啊,还好你没说在哪个盘不知道。。。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::全盘搜索文件,并赋值到%%i
  4. for /f "delims=" %%i in ('dir /s /b d:\ch_8.6.lsv') do (
  5.   ::分割字串,使用空格符,并赋值第一个空格前部给%%a,后部给%%b
  6.   for /f "usebackq tokens=1* delims= " %%a in ("%%i") do (
  7.     set str=%%a & rem 赋值%%a到str
  8.     set str=!str:~1,2! & rem 取str的第2位和第三位,即小时部分
  9.     if "!str:~0,1!"=="0" set /a str=!str:~1!  & rem 判断时间避免16进制冲突
  10.     if !str! gtr 7 echo %%a %%b>>$ & rem 丢弃不需要部分
  11.   )
  12. move /y $ "%%i" & rem 文件改名
  13. )
复制代码
 楼主| 发表于 2015-9-17 16:15:05 | 显示全部楼层
目录不确定,你这是让人全盘搜索的节奏啊,还好你没说在哪个盘不知道。。。
flyinnet9 发表于 2015-9-17 15:37

很好用 求命令讲解 我想小小修改 谢谢大神
发表于 2015-9-17 16:29:22 | 显示全部楼层
回复 3# 2220108515


    已改
 楼主| 发表于 2015-9-17 16:50:30 | 显示全部楼层
回复  2220108515


    已改
flyinnet9 发表于 2015-9-17 16:29



    放桌面上 不能使用啊
发表于 2015-9-17 17:06:51 | 显示全部楼层
回复 5# 2220108515


    测试没问题,用没注释的试试
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /s /b d:\ch_8.6.lsv') do (
  4.   for /f "usebackq tokens=1* delims= " %%a in ("%%i") do (
  5.     set str=%%a
  6.     set str=!str:~1,2!
  7.     if "!str:~0,1!"=="0" set /a str=!str:~1!
  8.     if !str! gtr 7 echo %%a %%b>>$
  9.   )
  10. move /y $ "%%i"
  11. )
复制代码
发表于 2015-9-17 17:11:20 | 显示全部楼层
本帖最后由 会飞的蜗牛丶 于 2015-9-17 17:13 编辑

提供一个笨笨的方法
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. if exist temp.txt (del f /a /q temp.txt)
  4. type ch_8.6.lsv|>>temp.txt findstr /n ""0^[0-7]"
  5. for /f "tokens=1,* delims=:" %%i in (temp.txt) do (
  6.         set str=!str! /c:"%%i:"
  7. )
  8. for /f "tokens=2,* delims=:" %%i in ('findstr /n /v /c:"sbsbsbsb" ch_8.6.lsv^|findstr /b /v %str%') do (
  9.         echo %%i:%%j
  10. )
复制代码
发表于 2015-9-17 17:17:50 | 显示全部楼层
楼上代码2B了
请用这个
  1. type ch_8.6.lsv|findstr /v /n ""0^[0-7]"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 16:45 , Processed in 0.026023 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表