如何在批处理文件中为我自己的命令设置帮助实用程序?

问题描述 投票:0回答:4

我想知道如何在我自己的批处理文件命令中设置帮助实用程序。我使用的是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

所以告诉我如何设置它?

windows batch-file
4个回答
3
投票

您无法将自己的内容添加到

help
。它是一个可执行文件 (
help.exe
),是 Windows 本身的一部分。它位于 Windows System32 目录中。它只知道命令解释器中内置的某些应用程序或命令 (
cmd.exe
)。

除非您想编写一个完整的替代品,否则您无法更改它或它所识别的程序。


2
投票
@echo off
if /i "%1"=="" ( echo "Nothing Entered"
)
if /i "%1"=="help" ( echo "Help text"
) 

只需在命令后面而不是在命令前面使用帮助,解决方案就像^

一样简单

0
投票

是的,这是可能的。 将其保存为

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" %*
)

0
投票

您通常可以遵循的示例脚本模式:

@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
© www.soinside.com 2019 - 2024. All rights reserved.