Прошло немного больше времени, пока я не успел это сделать, но вот скрипт для включения / отключения плагинов / функций из Eclipse для Windows . Чтобы отключить Mylyn, поместите скрипт в основной каталог Eclipse и выполните:
eclipse_pfswitch.bat disable .mylyn.
Чтобы включить его снова, выполните:
eclipse_pfswitch.bat enable .mylyn.
Конечно, вы можете делать это с произвольными целями, не только с Милином. Скрипт отображает, какие файлы / каталоги он перемещает.
Некоторые заметки:
- Сценарий использует тот же метод, что и Ответ Давида Дрозда - просто удаляя ненужные вещи в папки, которые неизвестны Eclipse. Таким образом, все можно легко восстановить. Разница лишь в том, что я решил использовать суффикс
.disabled
для имен каталогов.
- Мне пришлось использовать
SUBST
, чтобы уйти с помощью команды MOVE
, которая действительно должна использоваться здесь. Проблема в том, что имена некоторых каталогов Eclipse смехотворно длинные - например, org.eclipse.datatools.sqldevtools.schemaobjecteditor.feature_1.12.0.v201406061321-4218375LG5BJ93413
- и, следовательно, MOVE
не может работать с ними, вызывая ошибку The filename or extension is too long
(206).
- Буква по умолчанию для замещающего диска -
S:
. Если это используется в вашей системе, сценарий сообщит вам и выручит. Просто измените переменную subst_drive
на другую неиспользуемую букву диска.
- Будьте осторожны, указав цель. Например, если вы хотите удалить «Target Management», указание
tm
в качестве цели также приведет к удалению некоторой связанной с HTML части «Стандартных веб-инструментов», поскольку tm
, очевидно, также будет соответствовать html
- поэтому используйте .tm.
вместо. И наоборот, при удалении «Проводника удаленных систем» не используйте .rse.
, а .rse
, иначе вы пропустите некоторые части. В любом случае всегда легко вернуться назад, поэтому экспериментируйте, как хотите.
Без лишних слов, вот сценарий. Это не красиво, но эй, это партия.
@ECHO OFF
SETLOCAL EnableDelayedExpansion
ECHO Eclipse plugin/feature switcher script for Windowze (p) 2015 zb226
ECHO Inspired by https://stackoverflow.com/a/17614970/1529709
ECHO.
SET subst_drive=S:
IF EXIST %subst_drive%\ (
ECHO ERROR: Choose another drive for substitution, '%subst_drive%' is in use
GOTO :EOF
)
IF NOT EXIST plugins SET _check=1
IF NOT EXIST features SET _check=1
IF DEFINED _check (
ECHO ERROR: This does not look like an Eclipse main directory
GOTO :EOF
)
IF "%1" == "enable" SET _check=1
IF "%1" == "disable" SET _check=1
IF NOT DEFINED _check GOTO :usage
IF "%2" == "" GOTO :usage
SET mode=%1
SET target=%2
CALL :shove_it %mode% plugins *%target%*
CALL :shove_it %mode% features *%target%*
GOTO :EOF
:shove_it
SET _mode=%1
SET _type=%2
SET _mask=%3
IF "%_mode%" == "disable" (
SET _source=%2
SET _target=%2.disabled
IF NOT EXIST !_target! MKDIR !_target!
) ELSE (
SET _source=%2.disabled
SET _target=%2
)
SUBST %subst_drive% %_target%
FOR /F %%A IN ( 'DIR /B /O:N %_source%\%_mask% 2^> nul' ) DO (
ECHO !_mode:le=l!ing !_type:s=! %%A
MOVE %_source%\%%A %subst_drive%\%%A > nul
)
SUBST /D %subst_drive%
GOTO :EOF
:usage
ECHO Usage: %~nx0 enable^|disable [TARGET]
ECHO Examples: %~nx0 disable .mylyn.
ECHO %~nx0 enable .mylyn.
ECHO Example targets: .mylyn., .datatools., .tm., .cvs, .rse, .pde, .rcp, ...