之前我寫過一個python3的腳本可以實現alias的作用,後來想想畢竟Python不是所有人都會裝,那個腳本的適用性也就受到了限制,
今天我用批處理腳本重寫了一下那個alias的腳本,如下(共五個文件readini.bat,open.bat,gotopath.bat,commandlist.ini,help.txt):
你可以將腳本放到一個文件夾中,在桌面上建立open.bat的快捷方式,
郵件單擊快捷方式,選擇屬性,爲快捷方式添加快捷鍵:Ctrl+Alt+R
這樣無論在什麼窗口下,同時按住Ctrl+Alt+R,open.bat就會執行。
readini.bat內容如下:
rem @echo off & setlocal enabledelayedexpansion
rem echo 參數個數: %0 %1 %2 %3
set name1145264=
set namelist1145264=
set param1145264=
set paramlist1145264=
FOR /F "eol=; tokens=1* usebackq delims==" %%i IN (%1) do (
rem echo %%i %%j
set p=%%i
rem echo p=!p!
rem echo 取字符!p! !p:~0,1! !p:~-1! !p:~1,-1!
if "!p:~0,1!"=="[" (
if "!p:~-1!"=="]" (
rem @echo 條件!p:~1,-1!
set name1145264=!p:~1,-1!
set namelist1145264=!namelist1145264!,!name1145264!
)
)
rem echo name1145264=!name1145264! namelist1145264=!namelist1145264! paramlist1145264=!paramlist1145264! 輸入 %2
if "[!name1145264!]" NEQ "%%i" (
if "!name1145264!"=="%2" (
set paramlist1145264=!paramlist1145264!,%%i
if "%3"=="%%i" (
set param1145264=%%j
)
)
)
)
rem echo ------------------------
rem echo name1145264=!name1145264!
set return=
if "%2" EQU "" (
rem 名稱列表
rem echo "!namelist1145264:~1!"
set return=!namelist1145264:~1!
if "!namelist1145264!" NEQ "" (
set return=!namelist1145264:~1!
) else (
set return=
)
) else (
if "%3" EQU "" (
rem 屬性列表
rem echo "!paramlist1145264!"
if "!paramlist1145264!" NEQ "" (
set return=!paramlist1145264:~1!
)else (
set return=
)
) else (
rem 屬性值
rem echo "!param1145264!"
set return=!param1145264!
if "!param1145264!" NEQ "" (
set return=!param1145264!
)else (
set return=
)
)
)
set name1145264=
set namelist1145264=
set param1145264=
set paramlist1145264=
set p=
rem @echo on
open.bat內容如下:
@echo off & setlocal enabledelayedexpansion
set filename=commandlist.ini
set myname=0
:loop1
set myname=
set /P myname=請輸入簡寫:
rem echo 您輸入的是%myname%
if "%myname%"=="" (
rem echo "輸入爲空,請重新輸入"
goto :loop1
) else (
if "%myname%"=="help" (
type help.txt
echo .
goto :loop1
)
if "%myname%"=="quit" (
exit 1
)
if "%myname%"=="show" (
call readini %filename%
set p=!return!
for %%i in (!p!) do (
call readini %filename% %%i note
set p2=%%i
echo !p2:~0,15! !return!
)
goto :loop1
)
if "%myname%"=="edit" (
notepad %filename%
goto :loop1
)
if "!myname:~0,2!"=="g " (
rem echo call !myname:~0,2! %filename% !myname:~2!
call gotopath %filename% !myname:~2!
if !return! EQU 0 (
goto loop1
) else (
exit
rem echo =================exit===================
)
echo 程序不可能到運行這裏的
goto :loop1
)
call readini %filename% %myname% command
set mycmd=!return!
call readini commandlist.ini %myname% param
set myparam=!return!
call readini commandlist.ini %myname% path
set mypath=!return!
call readini commandlist.ini %myname% note
set mynote=!return!
if "!mycmd!"=="" (
echo 沒有找到%myname%對應的命令
set myname=
goto :loop1
) else (
echo 程序說明:!mynote!
set errorlevel=
rem echo 輸出%errorlevel%
if "!mypath!" NEQ "" (
rem echo start "!mycmd!" /D!mypath! !mycmd! !myparam!
start "!mycmd!" /D!mypath! !mycmd! !myparam!
) else (
start "!mycmd!" !mycmd! !myparam!
)
if %errorlevel% NEQ 0 (
@echo 錯誤代碼:%errorlevel%
goto :loop1
set myname=
set errorlevel=0
)
rem @echo 運行成功
exit
)
)
@echo on
pause
gotopath.bat 內容如下:
rem @echo off & setlocal enabledelayedexpansion
rem setlocal ENABLEDELAYEDEXPANSION
rem gp: goto path 去簡稱程序的目錄下
rem echo call readini %1 %2 path
set return=
call readini %1 %2 path
if "!return!" NEQ "" (
start "gotopath" explorer !return!
set return=1
) else (
echo 沒有找到%2.path屬性
set return=0
)
rem echo 執eee行結果:!return!
rem @echo on
help.txt內容如下:
-----------------------------------------
幫助文檔
edit 編輯配置文件
help 顯示幫助文檔
quit 退出系統
show 顯示簡寫命令列表
g 去簡稱命令的path下,例如:g ues去UE的path
其他 執行簡寫命令
-----------------------------------------
commandlist.ini內容如下:
;測試用ini文件
;注意 名稱中不能有等號和空格
; 屬性和等號之間不能有空格
[cmd]
command=cmd.exe
param=
path="E:\Users\changliang02\Documents"
note=命令窗口
[np]
command=notepad
param=
path=
note=記事本
[dl]
command=explorer.exe
param="E:\Users\changliang02\Downloads"
path=
note=下載目錄
[xls]
command=EXCEL.EXE
param=
path="C:\Program Files\Microsoft Office\Office15"
note=Excelb辦公軟件
[sr]
command=SecureCRT.exe
param=
path="D:\Tools\securecrt"
note=SecureCRT遠程Telnet工具
[et]
command=Everything.exe
param=
path="D:\Tools\Everything"
note=查找本地文件
[ues]
command=UEStudio.exe
param=
path="D:\Program Files\IDM Computer Solutions\UEStudio"
note=UEStudio超級文本編輯器
希望對大家的學習和工作有幫助。
腳本編程,簡單,綠色,無毒,快樂。