लिपी:
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
)
स्पष्टीकरण:
for /F %%I IN ('dir /b /s *.zip *.rar') DO (
यह कमांड द्वारा लौटी प्रत्येक फ़ाइल के लिए लूप करता है dir /b /s *.zip *.rar
। /s
बताता है dir
उपनिर्देशिका और में recurse करने /b
नंगे प्रारूप में प्रिंट।
फ़ाइल नाम को %%I
बाद में उपयोग के लिए चर में संग्रहीत किया जाता है । यदि आप इसे प्रॉम्प्ट पर टाइप कर रहे हैं, तो आप %I
इसके बजाय उपयोग करेंगे ।
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpI" "%%I"
यह निष्कर्षण करता है। तर्क -o"%%~dpI"
फ़ाइल को उसी निर्देशिका में निकालता है जहाँ संग्रह रहता है। अन्य विकल्प:
-o"%%~dpI"
- निर्देशिका में अर्क जहां संग्रह रहता है।
-o"%%~dpnI"
- संग्रह के नाम पर पदानुक्रम में एक नई निर्देशिका बनाता है और वहां अर्क (जो कि AFolder\archive.zip
अर्क है AFolder\archive\
)।
-o"%%~nI"
- वर्तमान निर्देशिका में संग्रह के नाम पर एक नई निर्देशिका बनाता है और वहां अर्क (जो कि AFolder\archive.zip
अर्क है .\archive\
)।
-o
तर्क छोड़ें - वर्तमान निर्देशिका में अर्क।
उदाहरण:
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