Как запустить эту команду bash, которая использует командную строку rar/winrar, в Windows?

Как запустить эту команду bash, которая использует командную строку rar/winrar, в Windows?

У меня есть эта команда bash, которая использует rar

for folder in */; do rar a -m0 -r "${folder%/}.rar" "$folder"; done

Я понимаю изhttps://stackoverflow.com/questions/25299584/создать-архив-rar-для-каждого-подкаталога-в-каталоге-centos-ubuntu что он создает rar-архив каждого подкаталога каталога. Но эта ссылка касается ubuntu. Интересно, как бы я запустил это в Windows.

Я понимаю, что Gnuwin32 полон старых версий программ и в нем даже нет rar.

Cygwin более новая версия, но в ее список пакетов не входит rar.exe.

Если я попробую даже выполнить $rar в cygwin, то он скажет:

rar: command not found

Что я могу сделать?

решение1

Есть два способа сделать это.. один из них — запустить rar.exe из cmd.exe без cygwin. Но тогда вам нужно будет настроить команду для запуска с помощью batch, а не bash.

Другой способ — запустить rar.exe из cygwin. Затем вы можете использовать команду bash напрямую. Мы попробуем этот путь

Вы можете запускать внешние исполняемые файлы из cygwin.

вы можете получить команду rar для windows довольно легко и она заканчивается вC:\Program Files\WinRAR\Rar.exe

Установите winrar с rarlab.com/download.htm, где упоминается rarlab.com/rar/winrar-x64-602.exe

Затем вам нужно знать, как добавить каталог в переменную path оболочки, чтобы вы могли запустить rar.exe из любого каталога (и в вашем случае, поскольку вы используете cygwin, это был бы способ bash добавить каталог в переменную path)

И если вы посмотрите, C:\ProgramData\Microsoft\Windows\Start Menu\Programs\WinRARтам будет руководство по использованию командной строки rar.exe.

$ /cygdrive/c/Program\ Files/WinRAR/Rar.exe | head -n 7

RAR 6.02 x64   Copyright (c) 1993-2021 Alexander Roshal   11 Jun 2021
Trial version             Type 'rar -?' for help

Usage:     rar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>



user@hp-probook1 ~
$ PATH=$PATH:/cygdrive/c/Program\ Files/WinRAR

user@hp-probook1 ~
$ /cygdrive/c/Program\ Files/WinRAR/Rar.exe | head -n 7

RAR 6.02 x64   Copyright (c) 1993-2021 Alexander Roshal   11 Jun 2021
Trial version             Type 'rar -?' for help

Usage:     rar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>


user@hp-probook1 ~
$ rar | head -n 7

RAR 6.02 x64   Copyright (c) 1993-2021 Alexander Roshal   11 Jun 2021
Trial version             Type 'rar -?' for help

Usage:     rar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>


user@hp-probook1 ~
$

Итак, вы видите, что теперь rar у вас запущен.

И теперь ваша команда будет работать так же хорошо, как и здесь.

https://stackoverflow.com/questions/25299584/создать-архив-rar-для-каждого-подкаталога-в-каталоге-centos-ubuntu

user@hppro ~
$ ls -l
total 3
drwxr-xr-x+ 1 user None  0 Aug  2 03:17 abcd_dir
drwxr-xr-x+ 1 user None  0 Aug  2 03:18 defgh_dir
-rwx------  1 user None 86 Dec 24  2020 blahfile

user@hppro ~
$ for folder in */; do echo rar a -m0 -r "${folder%/}.rar" "$folder"; done
rar a -m0 -r abcd_dir.rar abcd_dir/
rar a -m0 -r defgh_dir.rar defgh_dir/

user@hppro ~
$

И как показал пользователь, убрав эхо. И настроив путь cygwin bash, и установив winrar, включая командную строку rar.exe и затем запустив команду.

введите описание изображения здесь

Связанный контент