zoukankan      html  css  js  c++  java
  • 批处理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之间有个空格

  • 相关阅读:
    C++ 将对象写入文件 并读取
    IronPython fail to add reference to WebDriver.dll
    How to Capture and Decrypt Lync Server 2010 TLS Traffic Using Microsoft Tools
    .net code injection
    数学系学生应该知道的十个学术网站
    Difference Between Currency Swap and FX Swap
    Swift开源parser
    谈谈我对证券公司一些部门的理解(前、中、后台)[z]
    JDK8记FullGC时候Metaspace内存不会被垃圾回收
    JVM源码分析之JDK8下的僵尸(无法回收)类加载器[z]
  • 原文地址:https://www.cnblogs.com/zhouerba/p/7418393.html
Copyright © 2011-2022 走看看