目錄中有100個文件夾,並且每個文件夾中都有一個(filename).ini
文件。將文件夾名稱附加到該特定文件夾中的所有文件
我需要做的就是將父文件夾名稱附加到.ini文件,以便它變成(foldername)-(filename).txt
文件。
是否有一個批處理腳本可以做到這一點?我是批處理文件的新手。所以,非常感謝任何幫助!
目錄中有100個文件夾,並且每個文件夾中都有一個(filename).ini
文件。將文件夾名稱附加到該特定文件夾中的所有文件
我需要做的就是將父文件夾名稱附加到.ini文件,以便它變成(foldername)-(filename).txt
文件。
是否有一個批處理腳本可以做到這一點?我是批處理文件的新手。所以,非常感謝任何幫助!
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
+1,但是如果從根目錄開始,它會失敗,因爲'CD'用斜槓附加到'C:\' – jeb
這適用於任何文件夾和任何文件夾結構。
@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 FOR
和HELP SET
。
您需要哪種操作系統? –
如果您使用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