Batch file 基于原始文件名的第一个字符批重命名的脚本?

Batch file 基于原始文件名的第一个字符批重命名的脚本?,batch-file,batch-rename,Batch File,Batch Rename,我们正在办公室对所有销售订单进行OCR。正在根据捕获的数据创建Pdf文件。这些文件看起来像S123456.pdf、S239463.pdf。有时,OCR软件将“S”读作“5”。(文件最终创建为5123456.pdf。)我正在为windows命令提示符环境寻找一个批处理文件,该文件将仅重命名第一个字符以“5”开头的文件,将其重命名为“S”,并保留其余字符不变。首选将其应用于所有子文件夹。我在谷歌上搜索了一些例子。。不能让他们工作。。请帮忙 这应该可以工作-它只会将ren命令回显到屏幕上,因此如果看起

我们正在办公室对所有销售订单进行OCR。正在根据捕获的数据创建Pdf文件。这些文件看起来像S123456.pdf、S239463.pdf。有时,OCR软件将“S”读作“5”。(文件最终创建为5123456.pdf。)我正在为windows命令提示符环境寻找一个批处理文件,该文件将仅重命名第一个字符以“5”开头的文件,将其重命名为“S”,并保留其余字符不变。首选将其应用于所有子文件夹。我在谷歌上搜索了一些例子。。不能让他们工作。。请帮忙

这应该可以工作-它只会将ren命令回显到屏幕上,因此如果看起来正常,则删除
echo

@echo off
setlocal enabledelayedexpansion
for /r %%a in (5*.pdf) do (
set "name=%%~nxa"
echo ren "%%a" "S!name:~1!
)

简单的通配符重命名实际上可以实现您想要的功能:

ren 5*.pdf S*.pdf

你确定第一个字符总是一个“S”?+1-确实有效。对于任何感兴趣的人,请参阅它不会处理所有文件夹。