2017-07-20 52 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