重命名多个文件,不带括号/删除括号窗口

时间:2012-12-18 13:21:08

标签: windows cmd rename

我希望从任何地方开始按数字递增的顺序重命名大量文件。 但是当我重命名多个文件时,它会留下括号。 例如,我将文件重命名为abc_.jpeg,结果为abc_(1).jpeg,abc_(2).jpeg等。

我尝试使用命令提示符重命名

ren abc_(*).jpeg abc_*.jpeg
不起作用。可能是因为括号

ren abc_"("*")".jpeg abc_*.jpeg
重命名文件,但结果与以前相同。 我只是想以某种方式删除括号。

4 个答案:

答案 0 :(得分:12)

要删除括号,您必须进行一些字符串操作。我写了一个批处理文件来执行此操作(另存为.bat

cd C:\folder
setlocal enabledelayedexpansion
for %%a in (abc_*.jpeg) do (
set f=%%a
set f=!f:^(=!
set f=!f:^)=!
ren "%%a" "!f!"
)

我不认为你可以从命令行在一行中轻松地做到这一点,但它可能是可能的,但它不会很漂亮。如果您可以帮助它使用此批处理文件删除括号。

答案 1 :(得分:2)

在“文件资源管理器”窗口中,选择所有文件,右键单击并选择重命名。 Windows将选择起始编号作为圆括号之间提供的编号,因此使用比所需位数多1位的编号命名文件。

示例:我们想要模式" test_xxx"。使用文件资源管理器,将文件重命名为" tes(1000)"。您的文件现在将被命名为[" tes(1000)"," tes(1001)"," tes(1002)"等...] 。按住SHIFT并右键单击文件资源管理器的打开区域,然后选择"打开命令窗口"。发出以下命令:

ren *.* test_???.*

这会将所有文件重命名为正确的格式[" test_000"," test_001"," test_002"等等。]。

答案 2 :(得分:1)

聚会晚了一点,但这是删除括号和自动创建的空白空间的组合。该代码通过将.bat文件放在包含您要修改的所有文件的文件夹中而起作用。

将代码复制并粘贴到记事本中,并将其另存为sequenceFileNameCleaner.bat

您的文件名必须与第一行 sequentialFileNameCleaner.bat 上的文件名相同。话虽如此,如果您想更改文件名,则可以手动更新第一行。

:sequentialFileNameCleaner  [/R]  [FolderPath]
setlocal enabledelayedexpansion
for %%a in (*.jpg) do (
set f=%%a
set f=!f:^(=!
set f=!f:^)=!
ren "%%a" "!f!"
)
@echo off
setlocal disableDelayedExpansion
if /i "%~1"=="/R" (
  set "forOption=%~1 %2"
  set "inPath="
) else (
  set "forOption="
  if "%~1" neq "" (set "inPath=%~1\") else set "inPath="
)
for %forOption% %%F in ("%inPath%* *") do (
  if /i "%~f0" neq "%%~fF" (
    set "folder=%%~dpF"
    set "file=%%~nxF"
    setlocal enableDelayedExpansion
    echo ren "!folder!!file!" "!file: =!"
    ren "!folder!!file!" "!file: =!"
    endlocal
  )

)

默认情况下,此代码将仅查找.jpg文件。在第三行,将(*.jpg)更改为(*.png)或更改为(*.mp4)或任何您想要的扩展名将使代码兼容。

答案 3 :(得分:0)

当我们需要将特定的包含括号的文件名列表传递给脚本时,就会出现问题。以下确实适用于此。在此示例中,我们将括号改为下划线。

SET fileList=%*
SET delim1=aaaaaaaaaaaaa
SET delim2=zzzzzzzzzzzzz
setlocal enabledelayedexpansion
SET fileList=!fileList:^(=%delim1%!
SET fileList=!fileList:^)=%delim2%!
FOR %%f in (%fileList%) DO (
 SET f1=%%~f
 SET f1=!f1:%delim1%=^(!
 SET f1=!f1:%delim2%=^)!
 SET f2=%%f
 SET f2=!f2:%delim1%=_!
 SET f2=!f2:%delim2%=_!
 FOR %%i IN (!f2!) DO RENAME "!f1!" "%%~nxi"
)