Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- setlocal enabledelayedexpansion
- title Add Crowbar context menu entries (manual)
- set default_extensions=mdl,qc
- :check_elevation
- net session >nul 2>&1
- if not %errorlevel%==0 echo & echo Error: Must run as administrator. & pause>nul & goto :eof
- cd /d "%~dp0"
- set foundcount=0
- :check nearby
- if exist "%~dp0crowbar.exe" ( CALL :LogFoundFolder "%~dp0Crowbar.exe" & goto :ConfirmFolder)
- :hintcustomfolder
- echo.
- echo Please enter Crowbar folder
- echo.
- :AskCustomFolder
- set installpath=
- set /p installpath="Enter Crowbar.exe folder "
- for %%P in (%installpath%) do goto :next
- goto :AskCustomFolder
- :next
- set installpath=%installpath:"=%
- if "%installpath:~-1%"=="\" set "installpath=%installpath:~0,-1%"
- if "%installpath:~-1%"=="/" set "installpath=%installpath:~0,-1%"
- for %%P in (%installpath%) do (
- if exist "%installpath%" (
- if not "%%~xP"=="" if /i "%%~nxP"=="Crowbar.exe" ( CALL :SetCustomFolder "%installpath%" & goto :ConfirmFolder)
- if exist "%installpath%\Crowbar.exe" ( CALL :SetCustomFolder "%installpath%\Crowbar.exe" & goto :ConfirmFolder)
- )
- )
- echo & echo Error^: Could not find installation in provided folder. & echo. & goto :AskCustomFolder
- :hintextensions
- echo.
- echo Please enter file extensions to add, divided by comma, lowercase, no dots or just press enter for default list
- echo.
- :askextensions
- set /p extensions="What extensions to add for (default %default_extensions%): "
- if not "!extensions!"=="" (
- set "extensions=!extensions: =!"
- for /f "tokens=1 delims=abcdefghijklmnopqrstuvwxyz1234567890," %%A in ('echo !extensions!') do (
- set "extensions=%default_extensions%"
- echo Warning: input incorrect, will use default setting ^(%default_extensions%^)
- pause
- )
- ) else ( set "extensions=%default_extensions%" )
- :: exec for all extensions
- for %%E in (%extensions%) do CALL :SetKeys %%E
- :: results
- echo.
- echo -------------------------------------------------------
- if "!processedcount!"=="" ( echo No entries added ) else ( echo !processedcount! entries added: !processed! )
- echo -------------------------------------------------------
- echo.
- pause & goto :eof
- :SetKeys
- reg add "HKCR\SystemFileAssociations\.%1\shell\Crowbar.open" /f /v "" /t REG_SZ /d "Open in Crowbar">nul 2>&1
- reg add "HKCR\SystemFileAssociations\.%1\shell\Crowbar.open" /f /v "Icon" /t REG_SZ /d "\"%installpath%\",0">nul 2>&1
- reg add "HKCR\SystemFileAssociations\.%1\shell\Crowbar.open\command" /f /v "" /t REG_SZ /d "\"%installpath%\" \"%%1\"">nul 2>&1
- if !errorlevel!==0 CALL :LogFileType %1
- goto :eof
- :LogFileType
- if "!processedcount!"=="" ( set "processedcount=1" ) else ( set /a "processedcount=!processedcount!+1" )
- if "!processed!"=="" ( set "processed=%1" ) else ( set "processed=!processed!,%1" )
- goto :eof
- :LogFoundFolder
- echo.
- echo Crowbar installation found: "%~1"
- set "foundpath1=%~1"
- goto :eof
- :SetCustomFolder
- echo.
- echo Crowbar custom installation: "%~1" & echo.
- set "foundpath1=%~1"
- goto :eof
- :ConfirmFolder
- set proceed=
- set /p "proceed=Use this installation (Y/N)?"
- if not "!proceed!"=="" (
- set "proceed=!proceed: =!"
- for /f "delims=yYnN" %%A in ('echo !proceed!') do goto :ConfirmFolder
- )
- if /i !proceed!==y ( set "installpath=%foundpath1%" & goto :hintextensions)
- if /i !proceed!==n ( echo. & goto :hintcustomfolder)
- goto :ConfirmFolder
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement