• 批处理txt文件


    进入d盘,直接输入:d: 回车
    cd 目录名:进入特定的目录。
    cd :退回到根目录。
    cd..:退回到上一级目录

    1、删除关键词所在行

    cmd下

    进入该文件所在目录

    findstr /v /r "关键词" 源文件名.txt>新文件名.txt

    eg:findstr /v /r "哈哈" 1.txt>2.txt

    源文件:1.txt

    1ajsdfihiaushewhafj哈哈
    2ajshdfhash哈哈fasfd
    3asdfjiqerhhask
    4jasdfnhhasdfj
    哈哈5ausdhfuiahsdf

    新文件:2.txt

    3asdfjiqerhhask
    4jasdfnhhasdfj

    当txt文件很多时,可以批量修改:

     for /f "tokens=*" %i in ('dir/b *.txt') do (findstr /v "哈哈" "%i">temp.txt&move /y temp.txt "%i")
    
    

    (网上都是两个%,%%i,但是我自己在cmd下使用时,两个出错,一个才行。。。)

     eol=c                  – 指定一个行注释字符,遇到c开头的行就忽略掉。
     skip=n                – 指定在文件开始时忽略的行数。
     delims=xxx         – 指定分隔符。默认是空格和TAB。

     tokens=x,y,m-n   – 指每行的哪一个符号被传递到每个迭代的 for 本身。

                                  一句话总结:提取列。

                                  通俗讲,共同提取每一行的第m小节的内容。

                                  因此,可以用该命令来指定提取文本信息。

                                           tokens=有时表示提取全部。

                                           tokens=m表示提取第m列。

                                           tokens=m,n表示提取第m列和第n列。

                                           tokens=m-n表示提取第m列至第n列。

                                           tokens=*表示删除每行前面的空格。忽略行首的所有空格。

                                           tokens=m*提取第m列以后的所有字符,星号表示剩余的字符。

                                           tokens=m,*提取第m列以后的所有字符,星号表示剩余的字符。

                                 输出变量的个数由定义了的tokens决定。

                                 在 FOR 语句中显式声明 %%i。使用tokens= 隐式声明%%j %%k。只要不会引起试图声明高于字母“z”或“Z”的某个变量,则使用tokens= 可以指定最多 26 个输出变量。

    2、删除空行

    cmd下,进入文件所在目录

    删除目录下所有txt文件中的空行(子文件夹下页包括):(慎用!!!别问我为什么。。。)

    for /R %i in (*.txt) do @findstr . "%i">new.txt&move /y new.txt "%i"

    删除某个txt文件中的空行

    for /f "delims=" %i in (1.txt) do >>2.txt echo %i

    3、删除某个目录下的所有txt文件

    假设要删除的文件位于D盘的“测试”目录下的以的txt为扩展名的文件:
    
    运行:cmd
    
    在命令行提示窗口
    
    输入D: 回车
    
    就转到了D盘
    
    再输入cd 测试 回车
    
    就进入了“测试”目录
    
    输入del /f /s /q *.txt 回车

    删除某个固定名称的txt:例如1.txt

    del /f /s /q 1.txt

    这样目录下所有1.txt都被删除(包括子文件夹下的)

    4、批量重命名

    方法(1)利用bat文件

    新建一个txt 文件:

    @echo off
    setlocal enabledelayedexpansion
    set var=0  
    echo %var%
    set /a i = i + var
    for  %%x in (*) do (
        if not "%%x"=="rename.bat" (
            set /a i+=1    
            rename "%%x" "!i!.jpg"     
        )
    )
    pause

    重命名为:rename.bat

    把这个文件和你需要重命名的所有文件放在同一个目录下,双击打开运行即可

    运行结果:得到1.jpg,2.jpg,3.jpg...........

    注意:这里是里面所有文件都被重命名

    方法(2)dos命令

    首先,全选所有文件之后修改某一个文件的名字(如改成temp),确定后其余的文件名就自动改成了temp (1),temp (2),temp (3)(后缀省略)......注意:temp和(1)之间有个空格

     for /L %t in (1,1,3) do ren "temp (%t).jpg" "20170825_%t.jpg"

    结果:图片名字修改为:20170825_1.jpg,20170825_2.jpg,20170825_3.jpg,

    %t是循环变量,(1,1,3)的意思是(起始,步长,终止),终止基本就是所需要重命名文件的个数

    注意:temp和(%t).jpg之间有个空格

  • 相关阅读:
    bzoj 2038 [2009国家集训队]小Z的袜子(hose)
    【NOIP2014模拟11.1B组】吴传之火烧连营
    【NOIP2014模拟11.1B组】蜀传之单刀赴会
    phpmystudy:mysql启动失败
    英文漏洞报告解读(一)——PHP 5.4.x < 5.4.32 Multiple Vulnerabilities
    brupsuit Compare 模块及其应用场景
    Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)
    android ViewPager实现的轮播图广告自定义视图,网络获取图片和数据
    Android首页轮播图直接拿来用
    java 调用webservice的各种方法总结
  • 原文地址:https://www.cnblogs.com/zhouerba/p/7418393.html
Copyright © 2020-2023  润新知