Kịch bản:
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
)
Giải trình:
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
Điều này thực hiện một vòng lặp cho mỗi tệp được trả về bởi lệnh dir /b /s *.zip *.rar. Các /skể dirđể tái diễn vào các thư mục con và /bin ở định dạng trần.
Tên tệp được lưu trữ trong %%Ibiến để sử dụng sau. Nếu bạn đang gõ cái này tại dấu nhắc, bạn sẽ sử dụng %Ithay thế.
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
Điều này thực hiện khai thác. Đối số -o"%%~dpI"trích xuất tệp vào cùng thư mục nơi lưu trữ lưu trữ. Sự lựa chọn khác:
-o"%%~dpI" - Trích xuất vào thư mục lưu trữ.
-o"%%~dpnI"- Tạo một thư mục mới trong hệ thống phân cấp được đặt tên theo kho lưu trữ và trích xuất ở đó (nghĩa là AFolder\archive.ziptrích xuất vào AFolder\archive\).
-o"%%~nI"- Tạo một thư mục mới trong thư mục hiện tại được đặt tên theo kho lưu trữ và trích xuất ở đó (nghĩa là AFolder\archive.ziptrích xuất vào .\archive\).
Bỏ qua -ođối số - Trích xuất vào thư mục hiện tại.
Thí dụ:
C:\Temp>tree /F
Folder PATH listing
Volume serial number is 08A4-22E0
C:.
│ batch.bat
│
├───AFolder
│ a.zip
│
├───BFolder
│ b.zip
│
└───CFolder
c.zip
C:\Temp>batch.bat > nul
C:\Temp>tree /F
Folder PATH listing
Volume serial number is 08A4-22E0
C:.
│ batch.bat
│
├───AFolder
│ a.zip
│ a.zip.txt
│
├───BFolder
│ b.zip
│ b.zip.txt
│
└───CFolder
c.zip
c.zip.txt