farreg.cmd
Code: Select all
@echo off
echo save store restore clear delete |find " %1 ">nul
if not errorlevel 1 goto %1
:help
echo.
echo Usage:
echo %~nx0 {save^|store^|restore^|clear all^|clear cache^|delete}
echo.
goto :EOF
:clear
echo all cache |find " %2 ">nul
if errorlevel 1 goto help
goto %2
:all
choice Are You Sure
if -%errorlevel%==-1 goto clall
goto :EOF
:restore
set farsave=farsave1.reg farsave2.reg
if exist farfull1.bat set farsave=farfull1.reg farsave2.reg
if not exist farsave?.reg goto cache
:clall
echo REGEDIT4 >"%TEMP%\$DelOld$.reg"
echo [-HKEY_CURRENT_USER\Software\Far] >>"%TEMP%\$DelOld$.reg"
echo [-HKEY_LOCAL_MACHINE\Software\Far] >>"%TEMP%\$DelOld$.reg"
start/w regedit -s "%TEMP%\$DelOld$.reg"
del "%TEMP%\$DelOld$.reg">nul
if -%1==-clear goto :EOF
:cache
echo REGEDIT4 >"%TEMP%\$DelCache$.reg"
echo [-HKEY_CURRENT_USER\Software\Far\PluginsCache] >>"%TEMP%\$DelCache$.reg"
start/w regedit -s %farsave% "%TEMP%\$DelCache$.reg"
del "%TEMP%\$DelCache$.reg">nul
goto :EOF
:save
:store
regedit /ea farfull1.reg HKEY_CURRENT_USER\Software\Far&echo farfull1.reg
perl -x %0 farfull1.reg>farsave1.reg&echo farsave1.reg
regedit /ea farsave2.reg HKEY_LOCAL_MACHINE\Software\Far&echo farsave2.reg
goto :EOF
#!perl
@s=split(/\r?\n/,<<_);for(<>){if(/^\[/){$x="";for$s(@s){if(index($_,$s)==1){$x=1;last}}}print if!$x}
HKEY_CURRENT_USER\\Software\\Far\\Editor\\LastPositions
HKEY_CURRENT_USER\\Software\\Far\\FolderShortcuts
HKEY_CURRENT_USER\\Software\\Far\\Plugins\\FARMail\\Mailboxes
HKEY_CURRENT_USER\\Software\\Far\\Plugins\\FTP\\Hosts
HKEY_CURRENT_USER\\Software\\Far\\Plugins\\ProxyFtp\\Hosts
HKEY_CURRENT_USER\\Software\\Far\\Plugins\\The Underscore\\PluginCache
HKEY_CURRENT_USER\\Software\\Far\\PluginsCache
HKEY_CURRENT_USER\\Software\\Far\\SavedDialogHistory
HKEY_CURRENT_USER\\Software\\Far\\SavedFolderHistory
HKEY_CURRENT_USER\\Software\\Far\\SavedHistory
HKEY_CURRENT_USER\\Software\\Far\\SavedViewHistory
HKEY_CURRENT_USER\\Software\\Far\\UserMenu
HKEY_CURRENT_USER\\Software\\Far\\Viewer\\LastPositions
_