我有很多文件夹,其中有名字的文件:XXXX_transcoded.j2c
我需要从文件中删除_transcoded.j2c并更新为XXXX.txt
任何人都有任何想法如何做到
到目前为止我的代码
for /r %%i in (*.j2c) do (
call:Set %%~ni
)
:Set
set currenttext=%*
set currenttext=%currenttext:_transcoded=%
echo %currenttext%
%%~ni.Contract.xml %%i.txt
pause
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL
SET "sourcedir=c:\sourcedir"
FOR /f "delims=" %%a IN (
'dir /s /b /a-d "%sourcedir%\*_transcoded.j2c" '
) DO (
SET "fullname=%%a"
SET "oldname=%%~nxa"
CALL :changename
)
GOTO :EOF
:changename
SET "newname=%oldname:_transcoded.j2c=%"
ECHO REN "%fullname%" "%newname%.txt"
GOTO :eof
这对你有用。您必须将目录设置为sourcedir
。
为了测试目的,所需的REN命令仅为ECHO
。 在您确认命令正确后,将ECHO REN
更改为REN
以实际重命名文件。
答案 1 :(得分:1)
@echo off
setlocal disableDelayedExpansion
for /f "eol=: delims=" %%F in (
'dir /s /b /a-d *_transcoded.j2c'
) do (
set "full=%%F"
set "name=%%~nxF"
setlocal enableDelayedExpansion
ren "!full!" "!name:~0,-15!.txt"
endlocal
)
答案 2 :(得分:1)
这应该是你所需要的。在一些示例文件上测试它。
@echo off
for /r %%i in (*_transcoded.j2c) do (
for /f "delims=_" %%a in ("%%~nxi") do ren "%%i" "%%a.txt"
)