下载的视频文件需要放到投影仪上给孩子看,但是文件名称总是会按1、2……10、11这种数字规律作为开头,在投影仪上它的播放顺序就会变成1、10、11、12……2、20、21这样。
所以需要把文件前边的数字给他去掉
去掉之前它是这样排列的
修改步骤记录如下:
1. 在该目录下新建txt文件rename.txt
2. 在txt文件中写入批处理命令
setlocal enabledelayedexpansion
for %%F in (*) do (
set "FN=%%F"
set "FN=!FN:~3!"
ren "%%F" "!FN!"
)
goto :eof
3. 修改文件扩展名,将txt改成bat,然后双击执行批处理。
这样它会将该文件夹下的所有文件名称去掉前3位,只保留后边的部分,连rename.bat文件也是会变成ame.bat
(关于FN:~3,这里是因为文件名称的字符位置是从0开始算的,前边三个字符位置分别是0、1、2,所以这里是从第三位开始取值,如果你需要删除的字符更多,直接更改这个数字就好)
上边是简单粗暴的方法,那么如果你的文件编码已经超过了100个,那么就不适用了,因为100开头的文件要删除“100”和“.”四个字符,如果还按上边的执行,那么100.开头的文件删完就变成.开头了。
所以加个if判断,判断文件名前两位是数字第三位是.才做这个重命名操作
setlocal enabledelayedexpansion
for %%F in (*) do (
set "FN=%%F"
call :IsNumber "!FN!"
if defined Number if "!FN:~2,1!"=="." (
set "FN=!FN:~3!"
ren "%%F" "!FN!"
)
)
goto :eof
:IsDigit
set Digit=
if "%~1" GEQ "0" if "%~1" LEQ "9" set Digit=1
goto :eof
:IsNumber
setlocal
set "File=%~1"
set Number=
call :IsDigit "%File:~0,1%"
set Digit1=%Digit%
call :IsDigit "%File:~1,1%"
set Digit2=%Digit%
if "%Digit1%%Digit2%"=="11" set Number=1
endlocal & set Number=%Number%
goto :eof
执行完的结果是这样的