Премини към съдържанието
spica

Търся: Програма за конвертиране от *.rar в *.zip файлове

Препоръчан отговор


Здравейте,

Търся програма за конвертиране на много *.rar файлове в *.zip формат. Проблема е че получавам определена информация в RAR формат, а работя по лесно ( работа с множество файлове) с *.zip формата. Програмата може да е платена, но за предпочитане е "open source". Платформа: Линукс или Уиндоус.

Благодаря ви предварително!!!

EDIT: Не става въпрос за разархивиране и отново компресиране в *.zip, а за директно конвертиране!

Редактирано от spica (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Няма как да направи директно конвертиране без някакво разархивиране та дори и във временна папка. Аз бих използвал един прост batch файл за целта.

@echo off

md .\tmp

for %%I in (*.rar) do (

echo %%I

"c:\Program Files\WinRAR\WinRAR.exe" e %%I .\tmp

"c:\Program Files\WinRAR\WinRAR.exe" a %%~nI.zip .\tmp\*.*

del/q .\tmp\*.*

)

rd tmp

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Аз използвам Total commander които разархивира RAR фаилове и може да ги архивира в ZIP след разархивирането им от едната страна .

Много удобна и лесна програма която замества Win Explore .

Можеш да го изтеглиш от ТУК има си и Key и BG език

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Не знам дали съм прав но аз просто сменям разширението от .рар на .зип което се намира след фаела ако ти са пуснати разширенията.Не знам дали шри теб ще стане при мен става!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Само смяната на разширениято не променя съдържанието на файла. WinRAR го разпознава но Windows-а - не.


Сподели този отговор


Линк към този отговор
Сподели в други сайтове
Само смяната на разширениято не променя съдържанието на файла. WinRAR го разпознава но Windows-а - не.

Значи до сега съм бил във грешка.Е и аз научих нещо ново,но човек се учи докато е жив.Айде със здраве!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Благодаря на всички отзовали се. Дълго се ровичках из нета но така и не можах да намеря нещо което да ми свърши работа. След това последван от съвета на cecov се опитах да си направя свой собствен скрипт. За целта взех такъв подобен и малко го промених и се получи ето това:

#!/bin/sh


##################################################

#				 RAR2ZIP v0.0.1				 ##

#		convert rar files to zip files		  ##

# requires: unrar, zip						   ##

# (c) 2006 Georgi Dobrev, gosche_77@yahoo.de	 ##

# Permission is granted to freely distribute	 ##

# as long as this copyright notice is attached.  ##

#												##

# This program is free software; you can		 ##

# redistribute it and/or modify it under the	 ##

# terms of the GNU General Public License as	 ##

# published by the Free Software Foundation.	 ##

#												##

# This program is distributed in the hope that   ##

# it will be useful, but WITHOUT ANY WARRANTY;   ##

# without even the implied warranty of		   ##

# MERCHANTABILITY or FITNESS FOR A PARTICULAR	##

# PURPOSE.									   ##

###################################################

 ##################################################


# v0.0.1, 04/10/2006

#	   - Added "-s" and "-d" parameters



# COMMAND LINE USAGE: rar2zip file1.rar file2.rar "filename with spaces.rar" ...

# INVOKING RAR2ZIP WITHOUT PARAMETERS WILL CONVERT

# ALL RAR FILES IN THE CURRENT DIRECTORY


##### DEFINE FUNCTIONS


### HELP FUNCTION


help ()

{



ext=`echo "$file" | sed s/.*\.[Rr][Aa][Rr]$/rar/`


if [[ "$ext" == rar ]]; then


		echo ""


		else


				echo ""

				echo "rar2zip v 0.0.1 rar to zip conversion script"

				echo "rar2zip can be used in two ways, to convert one file and to convert"

				echo "whole directories of files at once."

				echo "Usage: rar2zip [ file1.rar file2.rar \"filename with spaces.rar\" ... ]"

				echo "Usage: rar2zip -s -d"

				echo "Invoking rar2zip with the -s parameter will supress error messages"

				echo "in screen output.  The -d parameter will delete all original versions"

				echo "of rar files without prompting first."

				echo ""

				exit 0

fi

}


### DELETION QUERY FUNCTION


delete_query ()

{

echo ""

echo "rar2zip v 0.0.1 rar to zip conversion script"


if [ "$p1" = "-d" ] || [ "$p2" = "-d" ]; then

		rardel=y

else

		echo -n "Delete original rar files after zip conversion? [y/N]:"

		read rardel

		rardel=${rardel:0:1}

		rardel=`echo "$rardel" | sed s/\\Y/y/`

fi

}



### DEFAULT COMPRESSION


detect_rarinfo ()

{


	echo ""

	echo "Compress files at what zip compression?"

	echo -n "(0 - No compression, 9 - Best Compression) - [0-9, default = 9]:"

	read comp

	compression=${comp:0:1}


	if [[ "$compression" = "" ]]; then


		compression=9

		echo "Conversion compression set to 9 "

		echo ""


	else

		echo ""


	fi

	echo "Compression = $compression"



}



### SUPRESSION PARAMETER CHECKING FUNCTION


detect_supress()

{

if [ "$p1" = "-s" ] || [ "$p2" = "-s" ]; then


		supress="y"


fi

}


### RAR TO ZIP CONVERSION FUNCTION


convert ()

{

# MAKE SURE FILE IS AN RAR

		ext=`echo "$file" | sed s/.*\.[Rr][Aa][Rr]$/rar/`


		if [[ "$ext" == rar ]]; then



						if [ "$supress" = "y" ]; then

								directory=`echo "$file" | sed s/\\.[Rr][Aa][Rr]// 2> /dev/null`

								mkdir "$directory" 2> /dev/null

						else

								directory=`echo "$file" | sed s/\\.[Rr][Aa][Rr]//`

								mkdir "$directory"

						fi

						echo $directory

						echo ""

						echo "** Converting \""$file"\" "

						echo ""

						if [ "$supress" = "y" ]; then

							unrar e -inul "$file" "$directory" 2> /dev/null

						else

							unrar e "$file" "$directory"

						fi

						if [ "$supress" = "y" ]; then

								zipfile=`echo "$directory" 2> /dev/null`

						else

								zipfile=`echo "$directory"`

						fi

						if [ "$supress" = "y" ]; then

								zip -qr"$compression" "$directory" "$directory" 2> /dev/null

						else

								zip -r"$compression" "$directory" "$directory"

						fi





# CLEAN UP TEMP FILES AND OPTIONALLY DELETE ORIGINAL RAR


						if [ "$rardel" = "y" ]; then

							rm -rf "$file" "$directory"

						else

							rm -rf "$directory"

						fi

		fi

}


##### END FUNCTIONS


##### BEGIN MAIN SCRIPT


# TEST FOR COMMAND LINE PARAMETERS


if [ "$1" ] && [ "$1" != "-d" ] && [ "$1" != "-s" ]; then


		for file in "$@"; do

				help

		done


		delete_query

		detect_rarinfo


		for file in "$@"; do

				convert

		done

		exit 0

fi


# IF HELP NEEDED


if [ "$1" ] && [ "$1" == "-h" ] || [ "$1" == "--help" ]; then

	help

fi



# NO COMMAND LINE PARAMETERS (BESIDES "-s" or "-d")

# CONVERT ENTIRE DIRECTORY


p1=$1

p2=$2


delete_query

detect_rarinfo

detect_supress


		for file in *; do

				convert

		done

exit 0

Не претендирам да е перфектен, все пак се мъчих само около 1 час над него. Ако някой има предложение за подобрение всяко мнение е добре дошло.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Само не ми е ясно защо не ползваш самия WinRAR. Той си има функция Convert.

Само си правиш default профила на ZIP файлове за да не го сменяш всеки път като конвертираш:

1) пускаш си WinRAR

2) Options -> Settings -> таба Compression и кликаш Create default

3) настройваш си го както искаш (ZIP и т.н.)

После само си отваряш файла или, ако са много, отваряш WinRAR и избираш файловете, и от меню Tools избираш Convert. Появява се прозорец с настройки, където (поне аз) си избирам да изтрие оригиналния архив (най-долната отметка) и при натискане на OK започва конвертирането.

Нищо сложно. :wors:

Интересно: възможна е интеграция на функцията Convert в контекстното меню. Сега, като писах поста, реших да проверя дали е възможно и се оказа, че е. Интересното, обаче, е, че интеграцията от контекстното меню не работи както трябва при конвертиране на RAR в ZIP. При избор на ZIP за конвертиране в RAR файлът се разпознава, но при избор на RAR за конвертиране в ZIP нещо файлът не се появява в списъка на избраните файлове за конвертиране. Явно е бъг. Веднага ще докладвам на WinRAR.

Редактирано от Night_Raven (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.