mirror of
				https://github.com/cmderdev/cmder.git
				synced 2025-10-31 09:22:15 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
| @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 [/reload] [/d] [name=full command]
 | |
| echo.     /reload  Reload the aliases file
 | |
| echo.     /d       Delete an alias (must be followed by the alias name)
 | |
| echo.
 | |
| echo.	If alias is called with any parameters, it will display the list of existing aliases.
 | |
| echo.	In the command, you can use the following notations:
 | |
| 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/?
 |