如何重命名文件,删除某些值之间的所有字符
How to rename files, removing all characters between certain values
我有一个包含 15.000 个文档的列表,我需要从其中删除名称中的特定文本。
名称结构总是:[xxx]_(xxx)_xxx.extension
我正在尝试删除文件名的 (xxx)_
部分。 xxx的长度是可变的。
我只找到了替换某些文本片段或删除固定文本片段的方法。感谢任何帮助或指导。
这是 for
的工作:
for /f "tokens=1,2,* delims=_" %%a in ('dir /b "[*]_(*)_*.extension"') do @echo %%a_%%c [removed "%%b"]
工作原理:
它根据定界符(此处为 _
)将您的文件名分解为三个部分:firstpart_secondpart_thirdpart
,然后通过将第一部分和第三部分安装在一起来重新组合它。
如果你想重命名它们(例如),而不仅仅是 echo
ing,你可以这样做:ren "%%a_%%b_%%c" "%%a_%%c"
我会使用 JREN.BAT - a regular expression renaming utility。 JREN.BAT 是纯脚本(混合 JScript/batch),可以在任何 Windows XP 以后的机器上本地运行。
假设您的 PATH 中的文件夹中有 JREN.BAT,那么您只需要从命令行执行以下命令:
jren "^(\[.*?\]_)\(.*?\)_" ""
该命令在当前目录中查找以 [*]_(*)_
开头的文件名并删除 (*)_
部分。
如果将命令放在批处理脚本中,请使用 CALL JREN
。
您可以添加/P
选项来指定不同于当前目录的路径,以及/S
选项来迭代所有子目录。
您可以使用 jren /??
访问大量文档。按 <Enter>
一次将帮助前进一行,或按 <space>
一次前进一页屏幕。或者使用 jren /?
立即将整个帮助转储到屏幕。
如果您想要 trim 多个文件名,您可以使用 PowerShell 进行尝试。
1. 导航到要重命名的文件所在的目录。
2.执行以下命令。
dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-N) + $_.Extension}
其中 "length-N" 中的 N 是您要 trim 从最后一个开始的字符数,不包括扩展文件。
示例:
我在 Windows 10 备份后恢复了我的文件,每个文件都出现了一些额外的字符,显示了我备份的日期和时间。
是 FileName (2020_02_13 12_33_22 UTC).extension,我需要 trim 括号之间的所有内容并取 FileName.extension
所以我必须在每个文件名中 trim 26 个字符。那么 N = 26
1) 我打开 PowerShell 并导航到我将在其中执行脚本的文件夹。
2) 我执行以下脚本
dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-26) + $_.Extension}
请小心使用此命令,因为除了 trim 给定数量的字符外,它不遵循任何参数。
我有一个包含 15.000 个文档的列表,我需要从其中删除名称中的特定文本。
名称结构总是:[xxx]_(xxx)_xxx.extension
我正在尝试删除文件名的 (xxx)_
部分。 xxx的长度是可变的。
我只找到了替换某些文本片段或删除固定文本片段的方法。感谢任何帮助或指导。
这是 for
的工作:
for /f "tokens=1,2,* delims=_" %%a in ('dir /b "[*]_(*)_*.extension"') do @echo %%a_%%c [removed "%%b"]
工作原理:
它根据定界符(此处为 _
)将您的文件名分解为三个部分:firstpart_secondpart_thirdpart
,然后通过将第一部分和第三部分安装在一起来重新组合它。
如果你想重命名它们(例如),而不仅仅是 echo
ing,你可以这样做:ren "%%a_%%b_%%c" "%%a_%%c"
我会使用 JREN.BAT - a regular expression renaming utility。 JREN.BAT 是纯脚本(混合 JScript/batch),可以在任何 Windows XP 以后的机器上本地运行。
假设您的 PATH 中的文件夹中有 JREN.BAT,那么您只需要从命令行执行以下命令:
jren "^(\[.*?\]_)\(.*?\)_" ""
该命令在当前目录中查找以 [*]_(*)_
开头的文件名并删除 (*)_
部分。
如果将命令放在批处理脚本中,请使用 CALL JREN
。
您可以添加/P
选项来指定不同于当前目录的路径,以及/S
选项来迭代所有子目录。
您可以使用 jren /??
访问大量文档。按 <Enter>
一次将帮助前进一行,或按 <space>
一次前进一页屏幕。或者使用 jren /?
立即将整个帮助转储到屏幕。
如果您想要 trim 多个文件名,您可以使用 PowerShell 进行尝试。 1. 导航到要重命名的文件所在的目录。 2.执行以下命令。
dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-N) + $_.Extension}
其中 "length-N" 中的 N 是您要 trim 从最后一个开始的字符数,不包括扩展文件。
示例:
我在 Windows 10 备份后恢复了我的文件,每个文件都出现了一些额外的字符,显示了我备份的日期和时间。
是 FileName (2020_02_13 12_33_22 UTC).extension,我需要 trim 括号之间的所有内容并取 FileName.extension
所以我必须在每个文件名中 trim 26 个字符。那么 N = 26
1) 我打开 PowerShell 并导航到我将在其中执行脚本的文件夹。 2) 我执行以下脚本
dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-26) + $_.Extension}
请小心使用此命令,因为除了 trim 给定数量的字符外,它不遵循任何参数。