批量重命名PDF文件:以希伯来字母ת开头并指定起始序号
批量重命名PDF文件需求
我有多个文件夹,每个文件夹内包含约100个PDF文件。需为每个文件夹中的文件批量重命名,使其以希伯来字母ת开头,后跟连续数字,但序号不从1开始。例如:
- pdfa 重命名为 ת20
- pdfb 重命名为 ת21
- pdfc 重命名为 ת22
以此类推...
尝试过的错误代码及报错
尝试CMD代码(在PowerShell中运行)
@echo off setlocal ENABLEDELAYEDEXPANSION set/a fileNum = 1 for %%f in (*.mp4) do ( ren %%~nf%%~xf !fileNum!%%~xf set/a fileNum += 1 )
报错信息:
- PowerShell提示
@echo off is an Unexpected token - 移除该行后提示
The term 'setlocal' is not recognized as the name of a cmdlet, function, script file, or operable program - 后续
set/a也出现同类错误,最终提示代码缺少闭合结构
尝试Linux风格命令(在PowerShell中运行)
ls -v | cat -n | while read n f; do mv -n "$f" "$n.pdf"; done
报错信息:Missing statement body in do loop
注:仅能通过工作电脑访问文件,无管理员权限,无法下载新软件。
可行解决方案(PowerShell版本)
单文件夹处理
打开PowerShell,先进入需要处理的文件夹(用cd 目标文件夹路径命令),然后执行以下代码:
# 设置起始序号,比如你需要的20 $startNum = 20 # 按名称排序获取当前目录下所有PDF文件(可根据需求调整排序逻辑) $pdfFiles = Get-ChildItem -Filter *.pdf | Sort-Object Name foreach ($file in $pdfFiles) { # 拼接新文件名:希伯来字母ת + 当前序号 + 原扩展名 $newFileName = "ת$startNum$($file.Extension)" # 执行重命名 Rename-Item -Path $file.FullName -NewName $newFileName # 序号自增 $startNum++ }
多文件夹批量处理
如果要一次性处理所有子文件夹,在父文件夹中执行以下代码:
$startNumPerFolder = 20 # 每个文件夹的起始序号 # 获取所有子文件夹 $folders = Get-ChildItem -Directory foreach ($folder in $folders) { $currentNum = $startNumPerFolder $pdfFiles = Get-ChildItem -Path $folder.FullName -Filter *.pdf | Sort-Object Name foreach ($file in $pdfFiles) { $newFileName = "ת$currentNum$($file.Extension)" Rename-Item -Path $file.FullName -NewName $newFileName $currentNum++ } }
内容的提问来源于stack exchange,提问作者Boof
相关产品推荐
相关产品推荐

