用于用文件名中的空格替换点的批处理文件
batch-file for replacing dots with spaces in file names
我在嵌套文件夹中有一些文件,它们的名称中有一些点,我想将它们转换成空格。例如转换
802.11.Wireless.LAN.Fundamentals.Cisco.Press.eBook-kB.pdf
到
802 11 Wireless LAN Fundamentals Cisco Press eBook-kB.pdf
请注意,不应删除扩展名的最后一个点(此处位于 PDF 之前),因此我无法使用 this script 来完成此任务。
未测试:
@echo off
set "root_dir=c:\pdfs"
setlocal enableDelayedExpansion
for /r "%root_dir%" %%a in (*.pdf) do (
set "fnm=%%~na"
set "nfnm=!fnm:.= !"
rem remove echo if everything looks ok
echo ren "%%a" "%%~dpa!nfnm!%%~xz"
)
如果回显命令正常,您需要更改 root_dir
并删除最后一行的 echo
。掩码放在*.pdf
@echo off
setlocal enableextensions disabledelayedexpansion
set "root=c:\some\where"
for /r "%root%" %%a in ("*.?*.pdf") do (
set "filename=%%~na"
setlocal enabledelayedexpansion
for %%f in ("!filename:.= !") do (
endlocal
echo ren "%%~fa" "%%~f%%~xa"
)
)
这将在指定文件夹下递归搜索具有 .pdf
扩展名且至少包含两个点的文件。对于找到的每个文件,文件名中的附加点(不包括扩展名)将替换为 space.
为避免文件名或路径中的感叹号问题,启用延迟扩展(需要修改块内的变量并访问更改的值)以删除点并在执行重命名操作之前禁用。
重命名操作仅回显到控制台。如果输出正确,删除 ren
之前的 echo
命令
我的 JREN.BAT hybrid JScript/batch utility 可以直接从命令行非常简单地处理这个问题。它是纯脚本,可以在 XP 以后的任何 Windows 机器上本地运行。它使用正则表达式替换来重命名文件或文件夹。
jren "\.(?=.*\.)" " " /s /p "c:\yourRootPathHere"
该命令扫描所有文件名,替换名称中至少有一个附加句点的所有句点。
因为 JREN 是批处理脚本,如果将命令放在另一个批处理脚本中,则必须使用 call jren
。
使用 jren /?
获取有关所有可用选项的帮助 - 这是一个强大的实用程序:-)
我在嵌套文件夹中有一些文件,它们的名称中有一些点,我想将它们转换成空格。例如转换
802.11.Wireless.LAN.Fundamentals.Cisco.Press.eBook-kB.pdf
到
802 11 Wireless LAN Fundamentals Cisco Press eBook-kB.pdf
请注意,不应删除扩展名的最后一个点(此处位于 PDF 之前),因此我无法使用 this script 来完成此任务。
未测试:
@echo off
set "root_dir=c:\pdfs"
setlocal enableDelayedExpansion
for /r "%root_dir%" %%a in (*.pdf) do (
set "fnm=%%~na"
set "nfnm=!fnm:.= !"
rem remove echo if everything looks ok
echo ren "%%a" "%%~dpa!nfnm!%%~xz"
)
如果回显命令正常,您需要更改 root_dir
并删除最后一行的 echo
。掩码放在*.pdf
@echo off
setlocal enableextensions disabledelayedexpansion
set "root=c:\some\where"
for /r "%root%" %%a in ("*.?*.pdf") do (
set "filename=%%~na"
setlocal enabledelayedexpansion
for %%f in ("!filename:.= !") do (
endlocal
echo ren "%%~fa" "%%~f%%~xa"
)
)
这将在指定文件夹下递归搜索具有 .pdf
扩展名且至少包含两个点的文件。对于找到的每个文件,文件名中的附加点(不包括扩展名)将替换为 space.
为避免文件名或路径中的感叹号问题,启用延迟扩展(需要修改块内的变量并访问更改的值)以删除点并在执行重命名操作之前禁用。
重命名操作仅回显到控制台。如果输出正确,删除 ren
echo
命令
我的 JREN.BAT hybrid JScript/batch utility 可以直接从命令行非常简单地处理这个问题。它是纯脚本,可以在 XP 以后的任何 Windows 机器上本地运行。它使用正则表达式替换来重命名文件或文件夹。
jren "\.(?=.*\.)" " " /s /p "c:\yourRootPathHere"
该命令扫描所有文件名,替换名称中至少有一个附加句点的所有句点。
因为 JREN 是批处理脚本,如果将命令放在另一个批处理脚本中,则必须使用 call jren
。
使用 jren /?
获取有关所有可用选项的帮助 - 这是一个强大的实用程序:-)