<p>先上代码(<span style="color:#fe2c24;">替换特定字符为指定字符</span>)</p>
讯享网
讯享网
以上代码作用是修改当前以及所有子文件夹下面的mp4文件名,将文件名(包含扩展名)中mp4替换为txt。
@echo off 为关闭命令回显命令,即运行时候dos窗口不会显示运行代码。
setlocal enabledelayedexpansion 为设置本地为延迟扩展。即可使用!variable!这种形式获取动态赋的值。更深层次的可以自行了解。
for /r . 表示对当前所在位置目录树遍历。%%i in (*.mp4) 表示 目标中的mp4文件的文件名赋值到%%i do () 括号里面是循环体内部命令的地方。
set str=!str:mp4=txt! 表示将 文件名字符串中的mp4替换为txt,知道这个用法,可以触类旁通,可以将你想要的替换的字符串替换为你想要的模样。
ren “%%i” “!str!” 表示将原文件名修改为替换后的新文件名
如果需要统一去掉倒数后面几个字符,或者开头几个字符等
核心代码 set filename=!filename:~0,-2! 替换后面两个字符,注意set filename=%%~nF获取不含扩展名的文件名时候,后面会默认多个空格,需要细心留意处理。
还有就是字符串拼接为set filename=!filename!!suf! 而不是我们熟悉其他语言的那种用+号连接。这里需要注意。
关于 set filename=%%~nF 获取文件名 不包含扩展名 有更多扩展如下(这里两个%是因为以上代码是写在xx.bat文件中的,而不是直接在dos窗口写的命令,其中一个%为转义符号。%为特殊符号,dos中很多符号为特殊符号,不同特殊符号转义符号不同,文本编辑时候需要注意转义问题):
%~I - 删除任何引号(“),扩展 %I
%~fI - 将 %I 扩展到一个完全合格的路径名
%~dI - 仅将 %I 扩展到一个驱动器号
%~pI - 仅将 %I 扩展到一个路径
%~nI - 仅将 %I 扩展到一个文件名
%~xI - 仅将 %I 扩展到一个文件扩展名
%~sI - 扩展的路径只含有短名
%~aI - 将 %I 扩展到文件的文件属性
%~tI - 将 %I 扩展到文件的日期/时间
%zI - 将 %I 扩展到文件的大小
%\(PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展<br /> 到找到的第一个完全合格的名称。如果环境变量名<br /> 未被定义,或者没有找到文件,此组合键会扩展到<br /> 空字符串</p> <p>可以组合修饰符来得到多重结果:</p> <p> %~dpI - 仅将 %I 扩展到一个驱动器号和路径<br /> %~nxI - 仅将 %I 扩展到一个文件名和扩展名<br /> %~fsI - 仅将 %I 扩展到一个带有短名的完整路径名<br /> %~dp\)PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展
到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩展到类似输出线路的 DIR
也可以为扩展名指定子字符串。
%PATH:10,5%
会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏
移量 10)字符开始的五个字符。如果没有指定长度,则采用默认
值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,
使用的数字则是环境变量数值长度加上指定的偏移量或长度。
%PATH:-10%
会提取 PATH 变量的最后十个字符。
%PATH:~0,-2%
会提取 PATH 变量的所有字符,除了最后两个。
关于DOS命令详细使用说明可以使用 命令名 /? 这种方式获取,例如:我想知道set 命令的详细使用 只需要在dos 窗口(windows键+R调出运行窗口输入cmd回车即可调出dos窗口) 输入:set /? 回车即可

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/157228.html