Batch file 如何重命名文件,删除某些值之间的所有字符
我有一个包含15000个文档的列表,我需要从名称中删除某些文本 名称结构始终为: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"]
[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
处中断