重命名子目录中的多个文件

时间:2017-07-20 23:47:40

标签: batch-file batch-rename

长话短说,我在试图安装新SSD时不小心擦了我的硬盘。我使用了一个很好的程序取消删除我的分区;但是,所有文件都有.efs扩展名。我目前正在使用:

:begin
RENAME *.extension.efs *.

我为每种文件类型编写了大量的行,并且此命令可以正常运行。唯一的问题是我必须手动将此.bat粘贴到每个文件夹中并执行它才能使其正常工作。

有没有办法可以实现这一点当我运行这个.bat时,它会从中央目录中查看所有文件夹和子目录?我是关于组织的肛门所以我的所有音乐,专辑,视频,电视节目等都在不同的文件夹中,我需要花一些时间从每个文件夹中运行我的原始.bat。

任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:1)

for /r /d %n in (.) do pushd "%n"&call "fullpathtoyourniftybatchfile"&popd
来自提示符的

将遍历当前目录所在的整个树。

您也可以将批处理放入path的任何目录并执行

for /r /d %n in (.) do pushd "%n"&call "yourniftybatchfilename"&popd

因为Windows会在path中搜索它无法在当前目录中找到的任何可执行文件。

答案 1 :(得分:1)

这是一个脚本,它将重命名当前目录中扩展名为efs的文件以及从当前目录开始的所有子文件夹。 %% i由文件夹或子文件夹的完整路径替换。需要第2行,因为for循环只执行文件夹和子文件夹。

@echo off  
ren *.efs *.
for /f "tokens=* usebackq" %%i in (`dir/b/ad/s`) do (
    cd %%i
    ren *.efs *.
)