mirror of
				https://github.com/cmderdev/cmder.git
				synced 2025-10-31 09:22:15 +08:00 
			
		
		
		
	Merge branch 'master' of https://github.com/cmderdev/cmder into alias
This commit is contained in:
		
							
								
								
									
										13
									
								
								vendor/bin/alias.cmd
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/bin/alias.cmd
									
									
									
									
										vendored
									
									
								
							| @@ -81,6 +81,7 @@ if "%ALIASES%" neq "%CMDER_ROOT%\config\user_aliases.cmd" ( | |||||||
|   ) |   ) | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | <<<<<<< HEAD | ||||||
| :: create with multiple parameters | :: create with multiple parameters | ||||||
| if [%action%] == [create] ( | if [%action%] == [create] ( | ||||||
|   if not ["%args%"] == [""] ( |   if not ["%args%"] == [""] ( | ||||||
| @@ -104,8 +105,20 @@ if [%action%] == [create] ( | |||||||
|    |    | ||||||
|   :: trailing quotes added while validating |   :: trailing quotes added while validating | ||||||
|   set alias_value=!alias_value:~1,-1! |   set alias_value=!alias_value:~1,-1! | ||||||
|  | ======= | ||||||
|  | :: validate alias | ||||||
|  | for /f "delims== tokens=1,* usebackq" %%G in (`echo "%_x%"`) do ( | ||||||
|  |   set alias_name=%%G | ||||||
|  |   set alias_value=%%H | ||||||
|  | >>>>>>> 67b374ad378bee1b9157b9a0b20c8e667ec6c6da | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | :: leading quotes added while validating | ||||||
|  | set alias_name=%alias_name:~1% | ||||||
|  |  | ||||||
|  | :: trailing quotes added while validating | ||||||
|  | set alias_value=%alias_value:~0,-1% | ||||||
|  |  | ||||||
| ::remove spaces | ::remove spaces | ||||||
| set _temp=%alias_name: =% | set _temp=%alias_name: =% | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										183
									
								
								vendor/bin/alias.cmd.orig
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										183
									
								
								vendor/bin/alias.cmd.orig
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,183 @@ | |||||||
|  | @echo off | ||||||
|  |  | ||||||
|  |  | ||||||
|  | if "%ALIASES%" == "" ( | ||||||
|  |   set ALIASES="%CMDER_ROOT%\config\user_aliases.cmd" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | setlocal enabledelayedexpansion | ||||||
|  |  | ||||||
|  | if "%~1" == "" echo Use /? for help & echo. & goto :p_show | ||||||
|  |  | ||||||
|  | :: check command usage | ||||||
|  |  | ||||||
|  | rem #region parseargument | ||||||
|  | goto parseargument | ||||||
|  |  | ||||||
|  | set args= | ||||||
|  |  | ||||||
|  | :do_shift | ||||||
|  |   shift | ||||||
|  |  | ||||||
|  | :parseargument | ||||||
|  |   set currentarg=%~1 | ||||||
|  |  | ||||||
|  |   if /i "%currentarg%" equ "/f" ( | ||||||
|  |     set ALIASES=%~2 | ||||||
|  |     shift | ||||||
|  |     goto :do_shift | ||||||
|  |   ) else if /i "%currentarg%" == "/reload" ( | ||||||
|  |     goto :p_reload | ||||||
|  |   ) else if "%currentarg%" equ "/H" ( | ||||||
|  |     goto :p_help | ||||||
|  |   ) else if "%currentarg%" equ "/h" ( | ||||||
|  |     goto :p_help | ||||||
|  |   ) else if "%currentarg%" equ "/?" ( | ||||||
|  |     goto :p_help | ||||||
|  |   ) else if /i "%currentarg%" equ "/d" ( | ||||||
|  |     if "%~2" neq "" ( | ||||||
|  |       if "%~3" equ "" ( | ||||||
|  |         :: /d flag for delete existing alias | ||||||
|  |         call :p_del %~2 | ||||||
|  |         shift | ||||||
|  |         goto :eof | ||||||
|  |       ) | ||||||
|  |     ) | ||||||
|  |   ) else if "%currentarg%" neq "" ( | ||||||
|  |     if "%~2" equ "" ( | ||||||
|  |       :: Show the specified alias | ||||||
|  |       doskey /macros | %WINDIR%\System32\findstr /b %currentarg%= && exit /b | ||||||
|  |       echo insufficient parameters. | ||||||
|  |       goto :p_help | ||||||
|  |     ) else if "%currentarg%" == "create" ( | ||||||
|  |       set action=create | ||||||
|  |       if ["%ALIASES%"] neq ["%CMDER_ROOT%\config\user_aliases.cmd"] ( | ||||||
|  |         for /f "tokens=1,2,3,* usebackq" %%G in (`echo %*`) do ( | ||||||
|  |           set args=%%J | ||||||
|  |         ) | ||||||
|  |       ) else ( | ||||||
|  |         for /f "tokens=1,2,* usebackq" %%G in (`echo %*`) do ( | ||||||
|  |           set args=%%H %%I | ||||||
|  |         ) | ||||||
|  |       ) | ||||||
|  |     ) else ( | ||||||
|  |       :: handle quotes within command definition, e.g. quoted long file names | ||||||
|  |       set _x=%* | ||||||
|  |     ) | ||||||
|  |   ) | ||||||
|  | <<<<<<< HEAD | ||||||
|  |  | ||||||
|  | ======= | ||||||
|  | >>>>>>> 67b374ad378bee1b9157b9a0b20c8e667ec6c6da | ||||||
|  | rem #endregion parseargument | ||||||
|  |  | ||||||
|  | if "%ALIASES%" neq "%CMDER_ROOT%\config\user_aliases.cmd" ( | ||||||
|  |   set _x=!_x:/f "%ALIASES%" =! | ||||||
|  |  | ||||||
|  |   if not exist "%ALIASES%" ( | ||||||
|  |     echo ;= @echo off>"%ALIASES%" | ||||||
|  |     echo ;= rem Call DOSKEY and use this file as the macrofile>>"%ALIASES%" | ||||||
|  |     echo ;= %%SystemRoot%%\system32\doskey /listsize=1000 /macrofile=%%0%%>>"%ALIASES%" | ||||||
|  |     echo ;= rem In batch mode, jump to the end of the file>>"%ALIASES%" | ||||||
|  |     echo ;= goto:eof>>"%ALIASES%" | ||||||
|  |     echo ;= Add aliases below here>>"%ALIASES%" | ||||||
|  |   ) | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | <<<<<<< HEAD | ||||||
|  | :: create with multiple parameters | ||||||
|  | if [%action%] == [create] ( | ||||||
|  |   if not ["%args%"] == [""] ( | ||||||
|  |     for /f "tokens=1,* usebackq" %%G in (`echo %args%`) do ( | ||||||
|  |       set alias_name=%%G | ||||||
|  |       set alias_value=%%H | ||||||
|  |     ) | ||||||
|  |   ) | ||||||
|  | ) else ( | ||||||
|  |   :: validate alias | ||||||
|  |   echo %_x% | ||||||
|  |   set x=!_x:%=^^%! | ||||||
|  |   echo !_x! | ||||||
|  |   for /f "delims== tokens=1,* usebackq" %%G in (`echo "!_x!"`) do ( | ||||||
|  |     set alias_name=%%G | ||||||
|  |     set alias_value=%%H | ||||||
|  |   ) | ||||||
|  |  | ||||||
|  |   :: leading quotes added while validating | ||||||
|  |   set alias_name=!alias_name:~1! | ||||||
|  |    | ||||||
|  |   :: trailing quotes added while validating | ||||||
|  |   set alias_value=!alias_value:~1,-1! | ||||||
|  | ======= | ||||||
|  | :: validate alias | ||||||
|  | for /f "delims== tokens=1,* usebackq" %%G in (`echo "%_x%"`) do ( | ||||||
|  |   set alias_name=%%G | ||||||
|  |   set alias_value=%%H | ||||||
|  | >>>>>>> 67b374ad378bee1b9157b9a0b20c8e667ec6c6da | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | :: leading quotes added while validating | ||||||
|  | set alias_name=%alias_name:~1% | ||||||
|  |  | ||||||
|  | :: trailing quotes added while validating | ||||||
|  | set alias_value=%alias_value:~0,-1% | ||||||
|  |  | ||||||
|  | ::remove spaces | ||||||
|  | set _temp=%alias_name: =% | ||||||
|  |  | ||||||
|  | if not ["%_temp%"] == ["%alias_name%"] ( | ||||||
|  |   echo Your alias name can not contain a space | ||||||
|  |   endlocal | ||||||
|  |   exit /b | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | :: replace already defined alias | ||||||
|  | %WINDIR%\System32\findstr /b /v /i "%alias_name%=" "%ALIASES%" >> "%ALIASES%.tmp" | ||||||
|  | echo %alias_name%=%alias_value% >> "%ALIASES%.tmp" && type "%ALIASES%.tmp" > "%ALIASES%" & @del /f /q "%ALIASES%.tmp" | ||||||
|  | doskey /macrofile="%ALIASES%" | ||||||
|  | endlocal | ||||||
|  | exit /b | ||||||
|  |  | ||||||
|  | :p_del | ||||||
|  | set del_alias=%~1 | ||||||
|  | %WINDIR%\System32\findstr /b /v /i "%del_alias%=" "%ALIASES%" >> "%ALIASES%.tmp" | ||||||
|  | type "%ALIASES%".tmp > "%ALIASES%" & @del /f /q "%ALIASES%.tmp" | ||||||
|  | doskey %del_alias%= | ||||||
|  | doskey /macrofile="%ALIASES%" | ||||||
|  | goto:eof | ||||||
|  |  | ||||||
|  | :p_reload | ||||||
|  | doskey /macrofile="%ALIASES%" | ||||||
|  | echo Aliases reloaded | ||||||
|  | exit /b | ||||||
|  |  | ||||||
|  | :p_show | ||||||
|  | doskey /macros|%WINDIR%\System32\findstr /v /r "^;=" | sort | ||||||
|  | exit /b | ||||||
|  |  | ||||||
|  | :p_help | ||||||
|  | echo.Usage: | ||||||
|  | echo. | ||||||
|  | echo.     alias [options] [alias=alias command] or [[create [alias] [alias command]]] | ||||||
|  | echo. | ||||||
|  | echo.Options: | ||||||
|  | echo. | ||||||
|  | echo.     Note: Options MUST precede the alias definition. | ||||||
|  | echo. | ||||||
|  | echo.     /d [alias]     Delete an [alias]. | ||||||
|  | echo.     /f [macrofile] Path to the [macrofile] you want to store the new alias in. | ||||||
|  | echo.                    Default: %cmder_root%\config\user_aliases.cmd | ||||||
|  | echo.     /reload        Reload the aliases file.  Can be used with /f argument. | ||||||
|  | echo.                    Default: %cmder_root%\config\user_aliases.cmd | ||||||
|  | echo. | ||||||
|  | echo. If alias is called with no parameters, it will display the list of existing aliases. | ||||||
|  | echo. | ||||||
|  | echo. In the alias command, you can use the following notations: | ||||||
|  | echo. | ||||||
|  | echo. ^^^^^^^^%% - '%%' in env vars must be escaped if preserving the variable in the alias is desired. | ||||||
|  | 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    - Command seperator, allowing you to string several commands together into one alias. | ||||||
|  | echo. | ||||||
|  | echo. For more information, read DOSKEY /? | ||||||
|  | exit /b | ||||||
		Reference in New Issue
	
	Block a user