我无法弄清楚为什么命令提示会在第一次使用后突然忘记某些命令.我在计算机上创建了一个文件夹来存储我的自定义命令,以使我的生活更轻松.我已将此文件夹添加到我的PATH环境变量中,因此我可以快速访问我的命令.
例如:运行ipconfig两次或更多次会导致命令每次都按预期工作.运行别名命令(下面包含的代码)两次或更多次按预期工作.运行我的deletefolder命令只能第一次运行.第二次它说"删除文件夹"不被识别为内部或外部命令,可操作程序或批处理文件.现在alias命令不再工作(无法识别),但ipconfig仍然有效.要让我的命令再次运行,我必须重新启动命令提示符.
我试图寻找这背后的原因,但没有找到任何答案这种行为.感觉它很简单,但我真的找不到什么.我试图尽可能彻底,如果我要澄清任何事情,请告诉我.
deletefolder批处理文件:
@echo off
set path=%1
IF DEFINED path (
GOTO run
) ELSE (
GOTO help
)
:help
echo. Usage:
echo. deletefolder [path]
exit /B
:run
CHOICE /C YN /M "Are you sure?"
IF ERRORLEVEL 1 (
:del /f/s/q %path% > nul
:rmdir /s/q %path%
)
exit /B
Run Code Online (Sandbox Code Playgroud)
别名命令(作者:Benjamin Eidelman,beneidel @ gmail.com)
@echo off
set operation=%1
set aliasname=%2
set aliasfile=%~dp0%2.cmd
IF "%~1"=="" GOTO help
IF /I "%~1"=="list" GOTO listaliases
IF /I "%~1"=="set" GOTO setalias
IF /I "%~1"=="get" GOTO getalias
IF /I "%~1"=="delete" GOTO deletealias
IF /I "%~1"=="here" GOTO setaliashere
:help
echo. Usage:
echo. alias list - list available cmd aliases
echo. alias set [name] [command line] - set an alias
echo. alias get [name] - show an alias
echo. alias delete [name] - delete alias
echo. alias here [name] [command line] - create alias cmd on cwd
exit /B
:listaliases
dir /B %~dp0*.cmd
exit /B
:setaliashere
set aliasfile=%2.cmd
:setalias
if "%aliasname%"=="alias" (
echo ERROR: cannot set this alias
exit /B 1
)
echo %1 %2> "%aliasfile%"
for %%a in ("%aliasfile%") do set /a length=%%~za
set /a length=length-1
set commandline=%*
setlocal enableDelayedExpansion
call set commandline=!commandline:~%length%!
set commandline=%commandline% %%*
echo %commandline%> "%aliasfile%"
echo INFO: alias "%aliasname%" set
exit /B
:getalias
if exist %aliasfile% (
type %aliasfile%
) ELSE (
echo ERROR: alias not found
exit /B 1
)
exit /B
:deletealias
if /I "%aliasname%"=="alias" (
echo ERROR: cannot delete this alias
exit /B 1
)
if exist %aliasfile% (
del %aliasfile%
echo INFO: alias deleted
) ELSE (
echo INFO: alias not found
)
exit /B
Run Code Online (Sandbox Code Playgroud)
在
%PATH%环境变量中包含文件夹列表.当在CMD提示符下发出命令时,操作系统将首先在当前文件夹中查找可执行文件,如果没有找到,它将扫描%PATH%以找到它.
不要随意更改PATH变量,使用其他变量名称,例如_path如下:
set "_path=%1"
IF DEFINED _path (
GOTO run
) ELSE (
GOTO help
)
rem your script continues here
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |