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

[文本处理] 【已解决】批处理如何将文本全部替换为空行再删除最后3行?

[复制链接]
发表于 2014-6-7 10:10:19 | 显示全部楼层 |阅读模式
本帖最后由 elec 于 2014-7-7 23:03 编辑

求助一个P处理,能够将文本的内容全部删除,但是行都在(应该是换行符??)。再删除最后3行
        有没有办法做成将文本拖入bat中,就自动生成处理好的文本。
发表于 2014-6-7 11:40:49 | 显示全部楼层
检测行数,然后-3,
发表于 2014-6-7 11:47:14 | 显示全部楼层
  1. @echo off
  2. if not exist "%~1" (
  3.     echo File not exist
  4.     pause
  5.     goto :eof
  6. )
  7. for /f %%i in ('type "%~1" ^| find /c /v ""') do (
  8.     set n=%%i
  9. )
  10. set /a n-=3
  11. (for /l %%i in (1,1,%n%) do (
  12.     echo,
  13. ))>"%~1".bathome
  14. move /y "%~1".bathome "%~1"
复制代码
发表于 2014-6-7 13:12:55 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1* delims=:" %%a in ('findstr /n .* %~s1') do (set n=%%a)
  3. set /a n=%n%-3
  4. for /l %%a in (2 1 %n%) do echo.>>"new_%~nx1"
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
elec + 1 TKS~

查看全部评分

 楼主| 发表于 2014-6-7 13:32:59 | 显示全部楼层
回复 4# 522235677


    我想知道类似于%~nx1    %~1   %~dpnx1等符号代表的意思。
    有没有系统的讲解?
发表于 2014-6-7 13:44:12 | 显示全部楼层
%~I          - 删除任何引号("),扩展 %I
     %~fI        - 将 %I 扩展到一个完全合格的路径名
     %~dI        - 仅将 %I 扩展到一个驱动器号
     %~pI        - 仅将 %I 扩展到一个路径
     %~nI        - 仅将 %I 扩展到一个文件名
     %~xI        - 仅将 %I 扩展到一个文件扩展名
     %~sI        - 扩展的路径只含有短名
     %~aI        - 将 %I 扩展到文件的文件属性
     %~tI        - 将 %I 扩展到文件的日期/时间
     %~zI        - 将 %I 扩展到文件的大小
     %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩展
                   到找到的第一个完全合格的名称。如果环境变量名
                   未被定义,或者没有找到文件,此组合键会扩展到
                   空字符串

可以组合修饰符来得到多重结果:

     %~dpI       - 仅将 %I 扩展到一个驱动器号和路径
     %~nxI       - 仅将 %I 扩展到一个文件名和扩展名
     %~fsI       - 仅将 %I 扩展到一个带有短名的完整路径名
     %~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展
                   到找到的第一个驱动器号和路径。
     %~ftzaI     - 将 %I 扩展到类似输出线路的 DIR

在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法
用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。
发表于 2014-6-7 14:53:39 | 显示全部楼层
点击链接加入群【批处理之家①】:http://jq.qq.com/?_wv=1027&k=ML4fnU
 楼主| 发表于 2014-6-7 16:33:55 | 显示全部楼层
回复 3# Batcher


    您的代码好是好,但是会直接覆盖原文件。后果十分惨烈!!!!

    能不能改进一下,我想将处理好的数据输出到一个新的文件命名为 aa.db     再将原文件重命名为bb.db
发表于 2014-6-7 18:18:46 | 显示全部楼层
回复 8# elec


    把3楼最后一行删掉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 07:14 , Processed in 0.014227 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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