1
A
回答
1
我不完全理解你當前的代碼的意圖。但是,以下將基於文件夾3級別重命名給定的文件。請注意,您只能使用此策略重命名每個文件夾具有給定擴展名的文件。
@echo off
setlocal
set "file=H:\Techs\Exported Videos\Scenario\1-CAS IED\Media player format\A8 West\abc.avi"
for %%A in ("%file%") do for %%B in ("%%~A\..\..\..") do ren "%%~A" "%%~nxB%%~xA"
請注意,我包含文件夾名稱的擴展名,因爲文件夾名稱可以包含點。
編輯
基於OP的意見,我相信下面將會修改所有相關的.avi文件。代碼已經過測試,並在我手中工作。只要適當地設置root
和files
值。
@echo off
setlocal
set "root=H:\Techs\Exported Videos\Scenario"
set "files=*.avi"
for %%A in ("%root%\.") do set "root=%%~fA"
for /f "delims=" %%A in ('dir /b /s /a-d "%root%\%files%"') do (
for %%B in ("%%~A\..\..\..") do (
if /i "%%~dpB" equ "%root%\" ren "%%~A" "%%~nxB%%~xA"
)
)
1
你可以試試這個:
@echo off &setlocal
set /a PathLevel=3
for %%a in (
"H:\Techs\Exported Videos\Scenario\1-CAS IED\Media player format\A8 West\1-CAS IED.avi"
"H:\Techs\Exported Videos\Scenario\2-SAF\Media player format\A8 PTZ\2-SAF.avi"
) do (
call:doit "%%~a"
)
goto:eof
:doit
set "fname=%~1"
set /a cnt=0
for %%a in ("%fname:\=","%") do set /a cnt+=1
set /a cnt-=PathLevel
for %%a in ("%fname:\=","%") do (
set /a cnt-=1
setlocal enabledelayedexpansion
if !cnt! equ 0 (
endlocal
set "nname=%%~a"
) else endlocal
)
echo ren "%fname%" "%nname%%~x1"
goto:eof
輸出爲:
ren "H:\Techs\Exported Videos\Scenario\1-CAS IED\Media player format\A8 West\1-CAS IED.avi" "1-CAS IED.avi"
ren "H:\Techs\Exported Videos\Scenario\2-SAF\Media player format\A8 PTZ\2-SAF.avi" "2-SAF.avi"
+0
不錯的腳本,但請閱讀我的評論下面的dbenham,因爲它解釋更好的細節我的問題。謝謝。 –
相關問題
- 1. linux如何將文件名更改爲其文件夾的名稱?
- 2. 將文件夾的名稱指定爲文件的名稱
- 3. 更改目錄下的文件夾名稱和文件名
- 4. 更改文件夾名稱,matlab
- 5. Cakephp更改項目文件夾名稱
- 6. 更改public_html文件夾的名稱
- 7. tomcat webapp文件夾名稱已更改
- 8. 更改silverstripes'mysite'文件夾的名稱
- 9. 將域名/文件夾/ file.pdf改寫爲域名/文件夾
- 10. 當文件放入文件夾時更改文件名稱
- 11. 將文件夾內的文件批量重命名爲父文件夾名稱
- 12. VBS將文件重命名爲與文件夾名稱相同
- 13. 將文件重命名爲其文件夾名稱
- 14. 如何將文件夾名稱更改爲Ubuntu根目錄
- 15. 我可以將App_Start文件夾的名稱更改爲AppStart嗎?
- 16. 更改文件夾名稱,以強大的名稱要求
- 17. 文件夾名稱文件夾裏面
- 18. 更改嵌套文件夾中文件的名稱
- 19. 蝙蝠文件更改文件夾名稱
- 20. 在每月文件夾名稱(每週更改)中打開每月文件夾名稱內的所有文件
- 21. 基本MVC路由:/文件夾名稱/文件夾名稱/控制器名稱
- 22. 將配對文件的名稱更改爲隨機名
- 23. 使用mozilla thunderbird擴展名更改文件夾的名稱
- 24. 重命名項目文件夾而不更改項目名稱?
- 25. 將文件夾名稱添加到文件名與SQL Server
- 26. 用Git更改文件夾名稱,然後提交更改?
- 27. 鑽入驅動器並更改文件夾名稱和文檔名稱
- 28. 在Visual Studio中更改命名空間/文件系統文件夾名稱
- 29. Linux腳本更改文件名,文件夾名稱和內部代碼
- 30. 將子文件夾中存在的同名文件重命名爲包含子文件夾名稱
dbenham,感謝回答。好的,我目前的問題是這樣的。我正在使用xProtect視頻軟件來捕捉多個攝像頭的訓練視頻。培訓完成後,我會將所有選定的視頻從xProtect導出到H:\ Techs \ Exported Videos \ Scenario \。該軟件會將視頻(avi格式)導出到指定位置,但它會默認創建「文件名\媒體播放器格式\視頻名稱\ VideoClip.avi」(即「1-CAS IED \媒體播放器格式\ A8 West \ abc .AVI「)。它會爲所有視頻執行此操作。 –
我需要的批處理文件是將所有.avi文件重命名爲導出期間給出的原始名稱(I.e.1-CAS)。所以換句話說,腳本會上傳3個文件夾(從.avi文件所在的位置),併爲.avi文件指定文件夾的名稱。例如:「H:\ Techs \ Exported Videos \ Scenario \ 1-CAS \ Media player format \ A8 West \ abc.avi」改爲「H:\ Techs \ Exported Videos \ Scenario \ 1-CAS \ Media player format \ A8 West \ 1-CAS.avi「或」H:\ Techs \ Exported Videos \ Scenario \ 2-IED \ Media player format \ B1 East \ abc.avi「改爲」H:\ Techs \ Exported Videos \ Scenario \ 2-IED \媒體播放器格式\ B1 East \ 2-IED.avi「等) –
@ USMC-3537 - 我已經更新了我的答案以解決您的問題。 – dbenham