我想知道如何在我自己的批处理文件命令中设置帮助实用程序。我使用的是Windows 7操作系统。我们只需键入即可在 Windows 命令提示符中检查命令的语法
help "command name"
喜欢
help attrib
所以我创建了批处理文件,它以路径/文件夹名称作为参数并将其设置为隐藏文件和系统文件。代码有三行
@echo off
attrib %1 +s +h
echo File/Folder hide successfully...
我将其保存为“hide.bat”,位于 C:\windows\system32,这样我就可以从任何目录使用它。但我想知道如何为我的命令设置帮助实用程序。我要显示
attrib [file/folder name] +s +h
+ to set an attribute
当用户输入时
help hide
hide是我的命令名(批处理文件名)
我更改了代码以在用户传递空白参数时显示帮助内容
@echo off
IF ["%1"]==[""] goto showhelp
goto done
:done
attrib "%1" +s +h
echo File/Folder hide successfully...
goto close
:showhelp
echo attrib [file/folder name] +s +h
echo + to set an attribute
:close
但这对我来说还不够,我想在用户输入时显示我的帮助内容
help hide
所以告诉我如何设置它?
您无法将自己的内容添加到
help
。它是一个可执行文件 (help.exe
),是 Windows 本身的一部分。它位于 Windows System32 目录中。它只知道命令解释器中内置的某些应用程序或命令 (cmd.exe
)。
除非您想编写一个完整的替代品,否则您无法更改它或它所识别的程序。
@echo off
if /i "%1"=="" ( echo "Nothing Entered"
)
if /i "%1"=="help" ( echo "Help text"
)
只需在命令后面而不是在命令前面使用帮助,解决方案就像^
一样简单是的,这是可能的。 将其保存为
help.bat
并将其放置在 PATH 中比 \windows\system32
文件夹更早的文件夹中。
可能已经有一个较早的文件夹 - 输入
set path
并查看 system32 之前的文件夹 - 或者您可以自己添加一个。
@echo off
if /i "%~1"=="hide" (
echo attrib [file/folder name] +s +h
echo + to set an attribute
) else (
"%Windir%\system32\help" %*
)
您通常可以遵循的示例脚本模式:
@ECHO OFF
SETLOCAL
REM required first argument
IF "%~1" == "" GOTO :USAGE
REM allow first argument 'help' to show usage
IF /I "%~1" == "help" GOTO :USAGE
REM optional second argument needs no check
REM two args max
IF "%~3" NEQ "" GOTO :USAGE
SET ARG1=%~1
SET MAYBE_ARG2=%~2
REM example check if ARG1 should exist
IF NOT EXIST "%ARG1%" ECHO Target '%ARG1%' does not exist. & EXIT /B 2
REM do stuff
REM Exit ok
EXIT /B 0
REM help text
:USAGE
ECHO Usage: %~n0 ^<arg1^> ^[arg2^]
ECHO.
ECHO arg1: explain arg 1
ECHO arg2: explain optional arg 2
ECHO.
EXIT /B 1