我在文件夹中有大量文件,文件名格式为:“ID FIRSTNAME LASTNAME.extension”。 ID为7位或6位数字,X为1234567或123456X。扩展名为pdf,doc或docx。每个变量之间的分隔符是空格“”。示例“1234567 Jill Smith.pdf”
我需要通过重新排序当前名称来重命名每个文件。它不是“ID FIRSTNAME LASTNAME.extension”,而是“LASTNAME_FIRSTNAME_ID.extension”。 因此,我需要将LASTNAME与ID交换,并用下划线“_”替换所有空格。扩展需要保持不变。使用上面的例子,“Smith_Jill_1234567.pdf”。
我做了一些快速清理(没有中间名),但我不确定如何让rename命令在第二个分隔符上工作,而不是第一个分隔符。我查看过windows batch file rename,但这只会影响第一个分隔符。
我无权访问第三方软件(限制权限),我正在运行Windows 7,并且检查过Powershell是否可用。
感谢您的帮助,谢谢
答案 0 :(得分:0)
ls | Rename-Item -NewName {$_.name -replace '^(\w+) (\w+) (\w+)', '$3_$2_$1'}
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=c:\sourcedir"
FOR /f "tokens=1-4delims=. " %%a IN (
'dir /b /a-d "%sourcedir%\*" '
) DO (
SET "reqxt="
IF /i "%%d"=="pdf" SET reqxt=Y
IF /i "%%d"=="doc" SET reqxt=Y
IF /i "%%d"=="docx" SET reqxt=Y
IF DEFINED reqxt (
ECHO REN "%sourcedir%\%%a %%b %%c.%%d" "%%c_%%b_%%a.%%d"
)
)
GOTO :EOF
更改源目录名称后,应报告所需的RENAME
。删除ECHO
关键字以实际执行重命名。