2011-06-30 33 views
0

目錄中有100個文件夾,並且每個文件夾中都有一個(filename).ini文件。將文件夾名稱附加到該特定文件夾中的所有文件

我需要做的就是將父文件夾名稱附加到.ini文件,以便它變成(foldername)-(filename).txt文件。

是否有一個批處理腳本可以做到這一點?我是批處理文件的新手。所以,非常感謝任何幫助!

+0

您需要哪種操作系統? –

+0

如果您使用Windows,您可以從[this](http://superuser.com/questions/205083/command-line-recursive-rename-move-in-windows)博客條目開始,對於linux,請參閱[this other one] (http://ubuntuforums.org/showthread.php?t=679657)。 – ascanio

回答

1
setlocal enabledelayedexpansion 

for /R %%a in (*.ini) do (
    set relativepath=%%a 
    set relativepath=!relativepath:%cd%\=! 
    set newname=!relativepath:\=-! 
    set newname=!newname:.ini=.txt! 
    ren !relativepath! !newname! 
) 

endlocal 
+0

+1,但是如果從根目錄開始,它會失敗,因爲'CD'用斜槓附加到'C:\' – jeb

0

這適用於任何文件夾和任何文件夾結構。

@echo off 
setlocal enabledelayedexpansion 
for /R %%a in (*.ini) do (
    set foldername=%%~pa 
    set foldername=!foldername:\=_! 
    echo ren "%%~fa" "(!foldername!)-%%~na.txt" 
) 

對於當前目錄中的所有INI文件:從文件名中提取的路徑,使用~p改性劑;使用:=修飾符將所有反斜槓發生件更改爲下劃線;最後重命名原始的ini文件。

測試後,取出ECHO

有關更多信息,請參見HELP FORHELP SET

相關問題