@echo off set ALIASES="%CMDER_ROOT%\config\aliases" if ["%*"] == [""] echo Use /? for help & echo. & goto :p_show if ["%1"] == ["/?"] goto:p_help if ["%1"] == ["/reload"] goto:p_reload :: /d flag for delete existing alias if ["%1"] == ["/d"] goto:p_del %* if ["%2"] == [""] echo Insufficient parameters. & goto:p_help ::validate alias setlocal for /f "delims== tokens=1" %%G in ("%*") do set _temp2=%%G set _temp=%_temp2: =% if not ["%_temp%"] == ["%_temp2%"] ( echo Your alias name can not contain a space endlocal goto:eof ) :: replace already defined alias findstr /b /v /i "%_temp%=" %ALIASES% >> %ALIASES%.tmp echo %* >> %ALIASES%.tmp && type %ALIASES%.tmp > %ALIASES% & @del /f /q %ALIASES%.tmp doskey /macrofile=%ALIASES% endlocal goto:eof :p_del findstr /b /v /i "%2=" %ALIASES% >> %ALIASES%.tmp type %ALIASES%.tmp > %ALIASES% & @del /f /q %ALIASES%.tmp doskey /macrofile=%ALIASES% goto:eof :p_reload doskey /macrofile=%ALIASES% echo Aliases reloaded goto:eof :p_show type %ALIASES% || echo No aliases found at %ALIASES% goto :eof :p_help echo.Usage: echo. alias name=full command echo. $* allows the alias to assume all the parameters of the supplied command. echo. $1-$9 Allows you to seperate parameter by number, much like %%1 in batch. echo. $T is the command seperator, allowing you to string several commands together into one alias. echo. For more information, read DOSKEY/?