创建CMD启动环境

我们可以用一个cmd文件,通过doskey命令模拟linux下的alias,指定一些我们习惯的命令名,比如:

env.cmd

@echo off
doskey alias=doskey /macros
doskey ls=dir $*
doskey ll=dir /a $*
doskey cat=type $*
doskey open=explorer $*
doskey ps=tasklist $*

然后可以通过注册表的 HKCUSoftwareMicrosoftCommand Processor 下的 AutoRun (REG_SZ)指定这个env.cmd的全名即可。

也可以利用下面这个cmd来设置它:

make_env.cmd

@echo off
pushd "%~dp0"
set sp0=------------------
set sp1=创建CMD启动环境
set envfile="%CD%env.cmd"
set getadminfile="%temp%getadmin.vbs"
title %sp1%
color 5f
:: -=UAC功能开始=-
echo.
echo 正在启动,请稍后...
attrib %envfile% | find "找不到" >nul 2>nul
if %errorlevel%==0 goto patherror
"%SYSTEMROOT%system32cacls.exe" "%SYSTEMROOT%system32configSYSTEM" >nul 2>nul
if %errorlevel%==0 (
    goto Administrator
) else (
    if %errorlevel%==2 (
        goto patherror
    ) else (
        goto UAC
    )
)
:patherror
cls
echo 暂不支持从第三方软件启动,请手动运行。
echo.
echo 按任意键打开"%~n0%~x0"所在文件夹...
pause >nul
start "" explorer.exe /select,"%~f0"
goto :end
:UAC
echo Set sh = CreateObject^("Shell.Application"^) > %getadminfile%
echo sh.ShellExecute "%~f0", "", "", "runas", 1 >> %getadminfile%
ping 127.1 -n 1 >nul
%getadminfile%
goto :end
:Administrator
if exist %getadminfile% ( del %getadminfile% )
:: -=UAC功能结束=-
:mainmenu
cls
echo %sp0%
echo %sp1%
echo %sp0%
echo 1. 注册
echo 2. 删除
echo Q. 退出
echo.
set input=
set /p input=请选择(直接回车:查看):
if "%input%"=="" goto :show
if "%input%"=="1" goto :reg
if "%input%"=="2" goto :del
if /i "%input%"=="Q" goto :end
echo.
echo 输入错误,请重新输入!
ping 127.1 -n 2 >nul
goto :mainmenu
:show
reg query "HKCUSoftwareMicrosoftCommand Processor" /v AutoRun
echo %sp0%
echo %envfile%
echo %sp0%
type "%envfile%"
goto :gotomain
:reg
cls
echo 注册
echo.
reg add "HKCUSoftwareMicrosoftCommand Processor" /v AutoRun /t REG_SZ /d "%envfile%" /f >nul
if %errorlevel% EQU 0 (
echo 注册成功!
ping 127.1 -n 2 >nul
goto :mainmenu
) else (
echo 注册失败。
goto :gotomain
)
:del
cls
echo 删除
echo.
reg delete "HKCUSoftwareMicrosoftCommand Processor" /v AutoRun /f >nul
if %errorlevel% EQU 0 (
echo 删除成功!
ping 127.1 -n 2 >nul
goto :mainmenu
) else (
echo 删除失败。
goto :gotomain
)
:gotomain
echo.
echo 按任意键键返回主菜单...
pause>nul
goto :mainmenu
:end
if exist %getadminfile% ( del %getadminfile% )
color
title %ComSpec%
popd
exit /B
原文地址:https://www.cnblogs.com/Bob-wei/p/7190441.html