zoukankan      html  css  js  c++  java
  • DOS批量重命名

    下面有一些文件:dir /b *.*得到
    144-10.1.4.150-1484707792127
    2326-10.1.4.150-1484708376194
    3682-10.1.4.150-1484709441269
    4346-10.1.4.150-1484708488670
    4378-10.1.4.150-1484708700869
    4407-10.1.4.150-1484709887151
    4421-10.1.4.150-1484709934360
    4565-10.1.4.150-1484709319358
    4940-10.1.4.150-1484709211319
    4992-10.1.4.150-1484708156493
    5105-10.1.4.150-1484708598561
    5262-10.1.4.150-1484709077347
    5559-10.1.4.150-1484708769183
    5622-10.1.4.150-1484709663010
    7669-10.1.4.150-1484709567772
    8124-10.1.4.150-1484708839802
    9152-10.1.4.150-1484709390804

    如何改成 第一列.txt呢?
    同目录下面新建一个bat文件,内容为:

    @ECHO OFF
    FOR /F "tokens=1,* delims=-" %%i in ('dir /b *.*') do ( 
        if  not "%%~ni"=="%~n0"  if not "%%~xi"==".txt" (
                 echo %%i-%%j
                 ren %%i-%%j %%i.txt
        )
    )
    pause

    改脚本知识点:
    1. for /F支持一些参数,tokens是表示变量和分割之后的对应关系。
    2. tokens=1,*表示 %i对应第1列,其余列剩下的所有内容在%j。字母根据tokens序列依次往后顺延。
    3. delims表示分隔符为-
    4. dir /b *.*列出仅仅有文件名(包含扩展)列表
    5. "%%~ni"=="%~n0",%~ni表示%i扩展到文件名不含扩展名。(%%~ni表示取出这个变量)
    6. "%~n0"表示当前脚本的文件名,处理文件的时候应该忽略脚本本身。
    7. %~xi表示%i扩展到当前的文件扩展名,例如是”.txt”
    8. if语句两个语句 连接 不是and 也不是 &&,用的是if 条件1 和if 条件2直接用空格连接。
    9. %%i-%%j直接字符串拼接得到原始文件名,使用ren命令得到%%i.txt,也就是第一列加上.txt

  • 相关阅读:
    11.22
    python之字典(dict)
    Version Control
    java_实现一个类只能声明一个对象
    javase-位运算符
    javase-整数变量的交换
    URI和URL的关系与区别
    http解析
    函数式语言
    MyIASM和Innodb引擎详解
  • 原文地址:https://www.cnblogs.com/slankka/p/9158496.html
Copyright © 2011-2022 走看看