• 3

批次大量移動不同檔案的方法?

批次大量移動不同檔案的方法?

我的檔案結構是
我的影片 -> 電影名字資料夾 -> 字幕資料夾 -> 字幕檔案

電影名字全是不同的
字幕資料夾名字都是叫Subs
字幕資料夾裡面大量不同語言的字幕檔案

請問有沒有方法可以批次一鍵把所有字幕檔案拉到他們自己各自的電影名字資料夾

我的系統是Win10 64bit
2022-12-01 17:07 發佈
文章關鍵字 檔案 方法
沒有現成的指令, 要寫batch file.
先取得每個目錄名稱, 再用copy指令將要的檔案複製到上一層目錄.
然後一直迴圈到複製完畢.

參考看看別人如何取目錄
https://ithelp.ithome.com.tw/questions/10187819

看檔案有多少, 說不定手動搬比較快.
concall81 wrote:
沒有現成的指令, 要...(恕刪)


因為有2千多個資料夾
全部不同名字
ggyy020406
ggyy020406 樓主

寫一個自主分類搬移小程式...沒能力做到...要是有收費軟件可以做到要付費的話也是比較可以接受

2022-12-01 19:24
ggyy020406
ggyy020406 樓主

檔案結構是 電影名字資料夾->字幕資料夾->字幕檔..裡面有多少個字幕檔案應該不是重點吧....重點是把字幕檔拉回它們各自的上一級資料夾(電影名字資料夾)那一個動作...因為有2千多套

2022-12-01 19:29
ggyy020406 wrote:
因為有2千多個資料夾...(恕刪)

手工慢慢用吧!
這種沒有事先規劃分類的檔案,
就是要一個一個手動做,

企業公司在整合系統時,
也是要先沒日沒夜的KEY資料分類,
沒有你想得那麼簡單。
因為類似需求我有爬到一個外國人寫的指令
https://pastebin.com/pbpJU08R

他的做法是把這個py拉進資料夾
掃到有English.srt這個檔案就自動更名為上一級subfolder的名字(即電影名字)
外加把該字幕檔拉出去他的上一級subfolder

上面那個指令是很接近我想要的
(其實我也是一樣只是想要把English.srt這個檔案拉走就可以)

這個py有做到拉的動作,但是他需要每個資料夾都丟進去這個py
我想說有沒有可以放到parent folder就可以執行
他自己把檔案拉進自己各自的subfolder

其實我也有google過別人說有一套叫Bulk Rename Utility的軟件的收費版可以做到
我有付費買了,可是太專業不會玩
Ghostwriter

要說簡單可以很簡單,不過至少你也放個圖片範例給大家看吧...

2022-12-01 20:16
用規則運算式試試吧?找出文字格式 特徵,要用文字編輯器編輯
先找出全部檔名,用文字編輯器內建的規則運算式,更改檔名在用批次檔,全部改名
ggyy020406 wrote:
請問有沒有方法可以批次一鍵把所有字幕檔案拉到他們自己各自的電影名字資料夾

你可以先用print指令拉出電影資料夾清單,再利用Excel製成命令行,再用bat執行看看?

請問您電影名字資料夾裡面是2千多部檔案放在單一資料夾下嗎?
字幕檔也是嗎?
我用Directory Opus檔案管理軟體
有腳本功能可以全選檔案然後每個檔案依檔名自建資料夾
並且檔案自動移動到個別資料夾裡
所以你的問題應該能簡單完成
就電影檔案腳本處理一次
字幕檔案腳本處理一次
然後全選電影或字幕任一邊
移動覆蓋就完成了
前提是你電影跟字幕檔名一致
Hao5862

我這方法就單純看您硬碟速度而已...還要想bat怎麼寫...我這方法也就滑鼠按一按而已

2022-12-01 20:47

ggyy020406 wrote:
批次大量移動不同檔案...(恕刪)

小程式版
放在電影資料夾外面,像左邊範例一樣
說穿了會寫程式彈性會比腳本好
腳本優點就是無腦直接錄完搞定



import shutil
import os

#PATH = "./test" 電影資料夾路徑
try:
PATH = input("please enter your folder name : ")
folder_all = os.listdir(PATH)
print(f"共有{len(folder_all)}個資料夾")

for folder_name in folder_all:
sub_path = f"{PATH}/{folder_name}/Subs" # 字幕檔位置
copy_list = os.listdir(sub_path)

for name in copy_list:
src_path = f"{sub_path}/{name}" # 字幕檔完整路徑
dst_path = f"{PATH}/{folder_name}/{folder_name}.sub" # 目的地完整路徑,改成資料夾名稱.sub
print(src_path+"->"+dst_path)
shutil.copy(src_path, dst_path) #複製
# 電影名字資料夾/字幕資料夾/字幕檔案 => 電影名字資料夾
except Exception as e:
print(e)
用 dir +參數 導入檔案

用文字編輯器 ex ultraedit

尋找取代,將重複多餘的內容刪除,

column mode 取得檔案的檔名 和 路徑

再用ultraedit 編輯個 bat檔

move "%路徑/%檔名" 你要的路徑

當然,如果你不懂batch file ,一定看不懂我在寫什麼

當然,如果你懂 batch file, 這種小問題基本上也不用問,一定會處理
ggyy020406
ggyy020406 樓主

看不懂...相關知識是零...

2022-12-01 23:38
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?