繁体   English   中英

批量重命名目录中的文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM