0

我正在尝试在所有文件夹和子文件夹中的特定文件类型中添加和删除后缀。
我知道添加前缀的代码,但我不知道后缀的代码

这是我的前缀代码

添加前缀:

@echo off
pushd "D:\Temp\Test\"
for /F "delims=" %%j in ('dir /s /b *.avi *.mkv *.mp4 *.wmv *.mpeg *.flv *.dat *.mov *.asf *.3gp *.srt') do (
   rename "%%j" "[my.prefix]-%%~nxj"
)
popd

删除前缀:

@echo off
pushd "D:\Temp\Test\"
for /F "delims=" %%a in ('dir /s /b *.avi *.mkv *.mp4 *.wmv *.mpeg *.flv *.dat *.mov *.asf *.3gp *.srt') do (
    set "fname=%%~nxa"
    set "fpath=%%~dpa"
    setlocal enabledelayedexpansion
    set "nname=!fname:~15!"
    ren "!fpath!!fname!" "!nname!"
    endlocal
)
popd

如何为后缀执行此操作?

4

2 回答 2

1

添加后缀

@echo off
pushd "D:\Temp\Test\"
for /F "delims=" %%j in ('dir /s /b *.avi *.mkv *.mp4 *.wmv *.mpeg *.flv *.dat *.mov *.asf *.3gp *.srt') do (
   rename "%%j" "%%~nj-[my.suffix]%%~xj"
)
popd

删除后缀

@echo off
pushd "D:\Temp\Test\"
for /F "delims=" %%a in ('dir /s /b *.avi *.mkv *.mp4 *.wmv *.mpeg *.flv *.dat *.mov *.asf *.3gp *.srt') do (
    set "fname=%%~nxa"
    setlocal enabledelayedexpansion
    set "nname=!fname:-[my.suffix]=!"
    ren "%%a" "!nname!"
    endlocal
)
popd
于 2013-10-24T11:26:09.117 回答
0
set fileName=thisIsATest_0001
set fileExtension=.avi

echo %fileName:~0,-5%%fileExtension%

子字符串第二部分的负值表示距字符串结尾的距离

于 2013-10-24T11:24:58.940 回答