[英]Rename files in directory in batch
任何人都可以帮助使用 bat 文件来重命名 windows 目录中的文件,例如
this-image-file-name (1).tif
this-image-file-name (2).tif
this-image-file-name (3).tif
that-pic-file-name (1).tif
that-pic-file-name (2).tif
至
this-image-file-name-1.tif
this-image-file-name-2.tif
this-image-file-name-3.tif
that-pic-file-name-1.tif
that-pic-file-name-2.tif
基本上去掉空格和括号并添加连字符?
@echo off
Setlocal enabledelayedexpansion
Set "Pattern= ("
Set "Replace=-"
For /R %%a in (*.tif) Do (
Set "File=%%~a"
Ren "%%a" "!File:%Pattern%=%Replace%!"
)
Set "Pattern=)"
Set "Replace="
For /R %%a in (*.tif) Do (
Set "File=%%~a"
Ren "%%a" "!File:%Pattern%=%Replace%!"
)
Pause&Exit
没有 /D /r 它在当前文件夹中工作正常,但我需要它在所有子文件夹上工作
我向您推荐FOR /?
或HELP FOR
,或者SS64 的FOR
文档。 /D
开关指示命令处理目录,忽略文件(也就是说,它会导致此批处理文件尝试重命名目录,这不是您想要的)。 如果你总是要在可以找到要重命名的文件的目录中启动这个批处理文件,那么/R
和/S
是等价的; 如果您希望将起始文件夹传递给命令,则必须使用/R
(请参阅FOR /R
at SS64 )。
如果您在两个FOR
语句中删除/D
,您的批处理文件应该可以正常工作。
使用ren
命令,如ren oldfilename newfilename
。 一个例子是ren "this-image-file-name (1).jpg" "this-image-file-name-1.jpg"
。 那你就会成功。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.