我有很多帶有存檔檔案的檔案夾,帶有子檔案夾的父檔案夾,例如
圖形:
- 圖形 01012021/file31241.7z
- 圖形 01022021/file4231.7z
- 零碎物品 01032022/filejohnny.7z
等每個檔案夾都包含一個存檔 - 各種名稱編號。每個檔案都包含各種檔案,pdf的txt檔案發票和影像檔案。通常影像是 .jpg 命名的各種名稱。
我想做的是批量攻擊父檔案夾以從每個子目錄的每個存檔中提取影像檔案,并將影像留在子目錄中,并帶有它來自的存檔。如果存檔有多個影像很好,我不會針對單個特定影像。
希望最終得到類似的東西
圖形:
- 圖形 01012021/ file31241.7z yellowstone.jpg flintstone.jpg
- 圖形 01022021/ file4231.7z martha.jpg
- 零碎 01032022/ filejohnny.7z artemis.jpg 法式 toast.png
如果可能的話,我寧愿避免提取所有分離影像的檔案,然后必須重新存檔。
我最初試圖發現的是批量提取影像檔案到它所屬的目錄,將影像檔案重命名為其目錄名。我沒有接近解決方案,所以我認為如果可能的話,只提取影像就可以了,我可以使用重命名應用程式來做另一個我發現批量重命名實用程式就可以了,一旦我明白了它。你不會想到這些年來你會收集這么多檔案,就像小水滴一樣,它們最終變成了充滿海洋的東西。
我已經嘗試研究堆疊并看到了很多例如 7zip 如何作業的示例,但我無法完全理解它。
我要退休了,他們告訴我 65 歲是雞舍的時候了,我在 gfx 行業的大部分時間里都是鉛筆推手和滑鼠手。我曾經知道每個檔案中有什么,但記憶有點怎么說……現在生銹了,我知道我所有的檔案里都有影像。在日落時,我的生活會更容易看照片,而不必絞盡腦汁試圖記住檔案本身的內容。
提前從下方的殖民地歡呼和打招呼。
脾氣暴躁
uj5u.com熱心網友回復:
我找到了解決問題的方法,無需使用我多年來一直使用的應用程式進行編碼。總司令。
最終解決方案很簡單。
我打開 Total Commander,搜索我想要的存檔檔案 Alt F7 它會在右側框架中列出我所有的存檔 .7z .zip 無論你有什么。
然后你選擇右下角的“feed to list box”。執行 Ctrl A 然后 Alt F9 為您提供一些選項。
您從存檔中清除解壓特定檔案以“確保其為空白”,然后解壓檔案告訴它您在我的情況下尋找什么 .jpg(它可以是任何特定檔案)。
如果與檔案一起存盤,請取消勾選解壓縮路徑名勾選或取消勾選覆寫現有檔案取消勾選將每個存檔解壓到單獨的子目錄(存檔名稱)點擊確定。
然后它將搜索并找到您要查找的檔案/s,并將它們解壓縮到它們所在的目錄/子目錄/等中。
作業完成... 僅使用 TC 無需編碼 .. 了不起的應用程式
uj5u.com熱心網友回復:
要回答您的問題,任務很簡單,涉及For帶有遞回的回圈,但是要強大,解決方案將很復雜,不知道這些特定的長期可能如何混合,7zip 檔案被細分,因此如果 7zip 本身有兩個具有相同命名檔案的子檔案夾你會遇到錯誤情況。如果需要,我已經允許使用 -aou 自動重命名。但是我沒有為每個檔案添加檔案夾名稱,因為這是一個額外的步驟。
@echo off & Title Extract Images from 7z files
set "extractor=C:\Program Files (x86)\7-Zip\7z.exe"
set "archives=*.7z"
set "filetypes=*.png *.jpg *.jpeg *.tif *.tiff"
set "startDir=C:\Users\WDAGUtilityAccount\Desktop"
FOR /R "%startdir%" %%I IN (%archives%) DO ( "%extractor%" e "%%I" -o"%%~dpI" %filetypes% -aou)
您可以添加額外的存檔型別,例如 .rar 或 .zip,就像我允許的不同影像檔案型別一樣。但是首先要測驗這些變化,否則第二次運行將呼叫現有重復項的自動命名。您當然可以將 -aou 更改為 -aos 以避免覆寫或根據需要將其洗掉。
Windows 上的另一種方法是,可以瀏覽標準 windows.zip 檔案,從而將其保存為壓縮檔案夾,單擊每個檔案將在默認應用程式中打開。因此,當您希望使用非默認應用程式時,只需要提取到檔案夾。

與您的需求更直接相關的次要優勢是,一些查看者可以只閱讀影像而忽略任何其他內容(即使他們可以閱讀文本或 html),我支持以 zip 格式讀取影像的一個是 SumatraPDF,雖然沒有列出它可以打開 .7Z 檔案以相同方式顯示

因此,我對提出的問題的回答是我建議將 7zip 轉換為標準 zip 而不是擴展它們,或者使用 SumatraPDF 作為默認/替代 7z 查看器!!。
uj5u.com熱心網友回復:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
rem The following settings for the source directory, destination directory, target directory,
rem batch directory, filenames, output filename and temporary filename [if shown] are names
rem that I use for testing and deliberately include names which include spaces to make sure
rem that the process works using such names. These will need to be changed to suit your situation.
SET "sourcedir=u:\your files"
SET "destdir=u:\your results"
SET "outfile=
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/451382.html
標籤:批处理文件
上一篇:批量findstr只回傳欄位值
下一篇:將檔案串列復制到特定檔案夾位置
