2017-07-20 54 views
1

长话短说,有一天我在尝试安装新SSD时意外地擦掉了硬盘。我使用了一个伟大的程序来取消删除我的分区;但是,所有文件都被赋予了.efs扩展名。我目前正在使用:重命名子目录中的多个文件

:begin 
RENAME *.extension.efs *. 

我有为每种文件类型写的大量行,而且这个命令完美地工作。唯一的问题是我必须手动将这个.bat粘贴到每个文件夹中并执行它才能使其工作。

有没有一种方法可以让我这样做,当我运行这个.bat,它会通过所有文件夹和子目录从一个中央目录?我是关于组织的肛门,所以我所有的音乐,专辑,视频,电视节目等都在单独的文件夹中,我需要相当长的时间来运行我的原始.bat文件。

任何帮助表示赞赏!

回答

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

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

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

这工作完美!非常感谢!!! – NFLO