簡體   English   中英

從文件夾名稱重命名文件的批處理腳本; “-”的問題

[英]Batch Script to rename files from folder name; issue with “-”

多年來一直使用這個腳本,我從這里找到從父文件夾名重命名電影文件名:

@echo off
for /r /d %%x in (*) do (
 pushd "%%x"
 echo %%x
 for /F %%i in ("%%x") do (
  ren *.mkv "%%~ni.mkv" 2> NUL
  ren *.avi "%%~ni.avi" 2> NUL
  ren *.mp4 "%%~ni.mp4" 2> NUL
 )
 popd
)

所以我遇到的唯一問題是父文件夾如下所示:MovieFolder-xyz

運行腳本,文件名將是:MovieFolder.mp4

這里的問題是“-xyz”被省略了,我太簡單了,無法弄清楚如何修復這個腳本,這樣我就不必手動重命名所有文件。 蒂亞!

我不確定您為什么要這樣做,但是對於相同的任務,您可以這樣做:

@for /r /d %%x in (*) do @(ren "%%x\*.mkv" "%%~nxx.mkv" 2> NUL
    ren "%%x\*.avi" "%%~nxx.avi" 2> NUL
    ren "%%x\*.mp4" "%%~nxx.mp4" 2> NUL)

或者更簡單:

@for /r /d %%x in (*) do @for %%y in (mkv avi mp4) do @ren "%%x\*.%%y" "%%~nxx.%%y" 2> NUL

一個合適的腳本會首先確定目錄中是否存在多個這些文件類型,以防止隨機重命名其中一個,或執行一些額外的腳本以確保僅重命名特定的一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM