最初に使用した後にコマンドプロンプトが突然特定のコマンドを忘れる理由を理解できません。 私の人生を楽にするために私のカスタムコマンドを保存するためのフォルダを作成しました。このフォルダをPATH環境変数に追加して、コマンドにすばやくアクセスできるようにしました。最初の使用後にコマンドプロンプト "忘れる"コマンド
たとえば、次のようになります。 ipconfigを2回以上実行すると、毎回期待通りにコマンドが実行されます。 aliasコマンド(以下に含まれるコード)を2回以上実行すると、期待どおりに動作します。 deletefolderコマンドを2回実行するのは、初めてのみ動作します。二度と '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
aliasコマンド(作者:ベンジャミンEidelman、[email protected]は)
@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
「doskey /?」と入力します。 –