Batch file 如何重命名文件,删除某些值之间的所有字符

Batch file 如何重命名文件,删除某些值之间的所有字符,batch-file,cmd,batch-rename,Batch File,Cmd,Batch Rename,我有一个包含15000个文档的列表,我需要从名称中删除某些文本 名称结构始终为:[xxx]\uxxx(xxx)\uxxx.扩展名 我正在尝试删除文件名的(xxx)\uuu部分。xxx的长度是可变的 我只找到了替换某些文本片段或删除固定文本片段的方法。非常感谢您的帮助或指导。这是的工作: for /f "tokens=1,2,* delims=_" %%a in ('dir /b "[*]_(*)_*.extension"') do @echo %%a_%%c [removed "%%b"]

我有一个包含15000个文档的列表,我需要从名称中删除某些文本

名称结构始终为:
[xxx]\uxxx(xxx)\uxxx.扩展名

我正在尝试删除文件名的
(xxx)\uuu
部分。xxx的长度是可变的


我只找到了替换某些文本片段或删除固定文本片段的方法。非常感谢您的帮助或指导。

这是
的工作:

for /f "tokens=1,2,* delims=_" %%a in ('dir /b "[*]_(*)_*.extension"') do @echo %%a_%%c  [removed "%%b"]
工作原理:

它根据分隔符将文件名分解为三部分(此处为“
”):
firstpart\u secondpart\u thirdpart
,然后通过将第一部分和第三部分安装在一起重新组装


如果您想重命名它们(例如),而不仅仅是
echo
ing,您可以这样做:
ren“%%a\u%%b\uC”“%%a\uC”
这是
for
的工作:

for /f "tokens=1,2,* delims=_" %%a in ('dir /b "[*]_(*)_*.extension"') do @echo %%a_%%c  [removed "%%b"]
工作原理:

它根据分隔符将文件名分解为三部分(此处为“
”):
firstpart\u secondpart\u thirdpart
,然后通过将第一部分和第三部分安装在一起重新组装

如果您想重命名它们(例如),而不仅仅是
echo
ing,您可以这样做:
ren“%%a\u%%b\uC”“%%a\uC”

我会使用。BAT是纯脚本(混合JScript/batch),从XP开始在任何Windows机器上本机运行

假设您在路径中的文件夹中有JREN.BAT,则只需从命令行执行以下命令:

jren "^(\[.*?\]_)\(.*?\)_" "$1"
该命令在当前目录中查找以
[*]\u(*)\ u
开头的文件名,并删除
(*)\u
部分

如果将命令放入批处理脚本中,请使用
调用JREN

您可以添加
/p
选项以指定与当前目录不同的路径,并添加
/S
选项以迭代所有子目录

您可以使用
jren/??
访问广泛的文档。按
一次前进一行帮助,或按
一次前进一页屏幕。或者使用
jren/?
立即将整个帮助转储到屏幕。

我会使用。BAT是纯脚本(混合JScript/batch),从XP开始在任何Windows机器上本机运行

假设您在路径中的文件夹中有JREN.BAT,则只需从命令行执行以下命令:

jren "^(\[.*?\]_)\(.*?\)_" "$1"
该命令在当前目录中查找以
[*]\u(*)\ u
开头的文件名,并删除
(*)\u
部分

如果将命令放入批处理脚本中,请使用
调用JREN

您可以添加
/p
选项以指定与当前目录不同的路径,并添加
/S
选项以迭代所有子目录


您可以使用
jren/??
访问广泛的文档。按
一次前进一行帮助,或按
一次前进一页屏幕。或者使用
jren/?
立即将整个帮助转储到屏幕上。

如果要修剪多个文件名,可以使用PowerShell尝试此操作。 1.导航到要重命名的文件所在的目录。 2.执行以下命令

dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-N) + $_.Extension}
其中,“length-N”中的N是要从最后一个字符中修剪的字符数,而不计算扩展名文件

示例:

在Windows 10中备份后,我恢复了文件,每个文档都显示了一些额外的字符,显示了备份的日期和时间

作为FileName(2020_02_13 12_33_22 UTC)。扩展名,我需要修剪括号之间的所有内容,并采用FileName.extension

所以我必须在每个文件名中删去26个字符。那么N=26

1) 我打开PowerShell并导航到将在其中执行脚本的文件夹。 2) 我喜欢下面的脚本

dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-26) + $_.Extension}

请小心使用此命令,因为除了修剪给定数量的字符外,它不遵循任何参数。

如果要修剪多个文件名,可以使用PowerShell尝试此操作。 1.导航到要重命名的文件所在的目录。 2.执行以下命令

dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-N) + $_.Extension}
其中,“length-N”中的N是要从最后一个字符中修剪的字符数,而不计算扩展名文件

示例:

在Windows 10中备份后,我恢复了文件,每个文档都显示了一些额外的字符,显示了备份的日期和时间

作为FileName(2020_02_13 12_33_22 UTC)。扩展名,我需要修剪括号之间的所有内容,并采用FileName.extension

所以我必须在每个文件名中删去26个字符。那么N=26

1) 我打开PowerShell并导航到将在其中执行脚本的文件夹。 2) 我喜欢下面的脚本

dir | Rename-Item -NewName {$_.name.substring(0,$_.BaseName.length-26) + $_.Extension}

使用此命令时要小心,因为除了修剪给定数量的字符外,它不遵循任何参数。

如果在第三部分中使用´´´会发生什么?因此,我只需将该代码添加到.bat文件中,并插入正确的目录?@CustomX-由
tokens=1,2,*
处理-它不会在第三个标记中的
\u
处中断,因此第三个标记已完成。这将错误地重命名与模板不匹配的文件。最好使用
dir/b[*].[*].*.extension
如果
.
出现在
[…]
(…)
@dbenham中,这也会有问题,谢谢更新!乍一看,现在似乎
[…]
(…)
中不包含
\uuu
,但不确定将来是否会包含此内容。如果在第三部分中使用''uu',会发生什么情况?因此,我只需将该代码添加到.bat文件中,并插入正确的目录?@CustomX-由
tokens=1,2,*
处理-它不会在3r中的
\uu
处中断