Mam wiele zip
plików archiwalnych, które chciałbym ponownie spakować do 7z
formatu archiwum, ponieważ pozwoliłoby mi to zaoszczędzić dużo miejsca. Jak ponownie spakować te pliki na komputerze z systemem Windows 7?
Próbowałem to zrobić za pomocą archiwizatora 7-zip w wersji GUI, ale nie znalazłem odpowiedniej funkcji. WinRar ma funkcję „Konwertuj”, ale nie archiwizuje do 7z
formatu.
Nie pytam wyłącznie o rozwiązanie obejmujące skryptowanie plików wsadowych.
Odpowiedzi:
Oto moje własne podejście do problemu:
for %%F in (*.zip) do ( "C:\Program Files\7-Zip\7z.exe" x -y -o"%%F_tmp" "%%F" * & pushd %%F_tmp & "C:\Program Files\7-Zip\7z.exe" a -y -r -t7z ..\"%%~nF".7z * & popd & rmdir /s /q "%%F_tmp" )
Zapisz to w
zip to 7z.bat
pliku, umieść w katalogu ze wszystkimi plikami zip, które chcesz przekonwertować, i kliknij tam dwukrotnie.Dzięki Clint Priest za kod podstawowy.
źródło
(*.zip)
się(*.rar)
i uruchom tę wersję też. Jeśli chodzi o usuwanie, nie polecam robić tego w tym skrypcie ze względów bezpieczeństwa. Jeśli nie masz kopii zapasowych, możesz stracić pliki, jeśli nie zostaną przekonwertowane, ponieważ ten skrypt nie obsługuje żadnych błędów. Po prostu sprawdź, czy masz taką samą liczbę nowych i starych archiwów, sortując według daty i wybierając nowo utworzone archiwa i porównując liczbę z całkowitą liczbą plików w folderze (minus plik skryptu wsadowego).Możesz użyć wiersza poleceń 7zip (szczegółowe przykłady tutaj ), aby najpierw wyodrębnić wszystkie pliki / foldery (za pomocą
e
polecenia), a następnie ponownie skompresować je do 7z (za pomocąa
polecenia).Jeśli planujesz powtórzyć tę operację, rozważ przechwycenie linii poleceń w pliku .bat / .cmd.
I zawsze testuj w małym katalogu przed wypróbowaniem ogromnej liczby archiwów!
źródło
Oto linia poleceń, która zrobi to za Ciebie, przy założeniu, że pliki zip znajdują się w tym samym katalogu co 7z.exe:
for %F in (*.zip) do ( 7z.exe e -y -o%~nF.tmp %F * & pushd %~nF.tmp & ..\7z.exe a -y -r -t7z ..\%~nF * & popd & rmdir /s /q %~nF.tmp )
źródło
for %%F in (*.zip) do ( "C:\Program Files\7-Zip\7z.exe" e -y -o%%~nF.tmp %%F * )
i tocannot find archive
dotyczy wszystkich plików zip w folderze.