如何批量重命名文件

如何批量重命名文件

在 Windows 中,我尝试使用命名约定“Name (2016)“ 将 至 ”2016 - Name“, 反而。

我尝试编写一个 PowerShell 脚本,但是遇到了一些麻烦,由于我对语法等缺乏全面的了解,因此想寻求帮助。

我认为下面的脚本不起作用,因为“ \(.*\)”的意思是“括号内的内容”......

我的工作(不起作用)

get-childitem | foreach { rename-item $_ $_.Name.Replace("\(.*\)", "") } 

我脑子里的想法是以某种方式将变量设置为括号内的任何内容,如“Name (x)“然后将其重命名为”x - Name“我很迷茫,需要帮助,但这是我的工作。

答案1

由于您展示了您的工作并且没有其他人尝试过,所以我编写了下面的Batch脚本,就像Batch您问题上的标签表明您正在寻找解决方案一样。

确保将SET SrcDir=变量的文件夹路径设置为文件所在的位置。根据您提供的文件名示例,我进行了测试,结果显示此方法 100% 准确。

如果您正在寻找更多内容,请提供更多详细信息,例如所有完整文件名示例。

批处理脚本示例

@ECHO ON

SETLOCAL ENABLEDELAYEDEXPANSION
SET SrcDir=C:\Users\User\Desktop\Test

FOR /F "TOKENS=1-3 DELIMS=() " %%A IN ('DIR /B /A-D "%SrcDir%\* (*)*"') DO (
    SET "part1=%%~A" 
    SET "part2=%%~B" 
    SET "part3=%%~C"
    REN "%SrcDir%\!part1! (!part2!)!part3!" "!part2! - !part1!!part3!"
)
GOTO :EOF

更多资源

相关内容