Command.com读取文件与命令(help作为文件和命令)

10 浏览
0 Comments

Command.com读取文件与命令(help作为文件和命令)

在我的学校,要使用CMD,你必须通过command.com来运行它。

当我这样做,并使用命令“help”,它会打开批处理文件的帮助,而不是显示帮助命令。

只是出于兴趣,有没有其他方法可以绕过这个问题,而不是移动或重命名文件?

0
0 Comments

出现的原因是在使用Command.com读取文件和命令时,可能会出现无法正确识别命令的问题。解决方法是指定所需的命令的绝对路径,确保使用正确的文件扩展名(如.com或.exe),或直接调用正确的程序。以下是具体的解决方法:

Maybe you could specify the absolute path to the help command you want.
Thats the thing, whats the help command called? Is it help.com? If you just have "Help" it wont work, it will find Help.cmd. If you use "Help.com" it will say its not a recognized as an inter.... ect
: You may know the name of the command. See my answer
Its help.exe, and is probably located at c:\windows\system32\help.exe.  The other thing you could do, is call help.exe and that should skip your script and just call the right program. That script above is pretty cool though, never thought to try something with windows bat/cmd file.

可能你可以指定所需的帮助命令的绝对路径。

问题在于,帮助命令叫什么?它是help.com吗?如果你只写"Help"是不行的,它会找到Help.cmd。如果你使用"Help.com",它会显示为不被识别为内部或外部命令。

你可能知道命令的名称。请看我的回答。

这是help.exe,并且可能位于c:\windows\system32\help.exe。另一件事你可以做的是调用help.exe,这样就可以跳过脚本直接调用正确的程序。上面的脚本还是挺酷的,从没想过在Windows批处理/cmd文件中尝试这样的东西。

0
0 Comments

在上述的命令批处理文件中,我们可以看到通过pathof help这个命令来获取帮助文件的全路径名(带有扩展名)。

这个问题的出现是因为在这个批处理文件中,我们需要通过读取文件的内容来获取帮助信息,但是由于pathof help命令将help作为参数传递给了批处理文件,导致批处理文件会去查找名为help的可执行文件,而不是读取help作为文件的内容。

为了解决这个问题,我们需要对批处理文件进行修改。以下是解决方法:

1. 在批处理文件中添加一个判断,如果传递给批处理文件的参数是help,则读取help.txt文件的内容。

2. 修改批处理文件中的代码,将文件的内容读取出来并打印出来。

下面是修改后的代码:

OFF
SETLOCAL ENABLEDELAYEDEXPANSION
REM CREATE A LIST OF FILE NAMES ADDING THE EXECUTABLE EXTENSIONS
SET NAMEEXT=!PATHEXT:.=%1.!
REM SEARCHES FILE NAMES IN CURRENT DIRECTORY, IF FOUND: ERRORLEVEL=1
FOR %%N IN (%NAMEEXT%) DO IF EXIST %%N ECHO %%N & EXIT /B 1
REM SEARCHES FILE NAMES IN DIRECTORIES OF PATH VARIABLE, IF FOUND: ERRORLEVEL=2
FOR %%N IN (%NAMEEXT%) DO IF NOT "%%~$PATH:N" == "" ECHO %%~$PATH:N & EXIT /B 2
REM IF FILE NOT FOUND, ERRORLEVEL=0
REM CHECK IF PARAMETER IS "help" AND READ THE CONTENTS OF "help.txt" FILE
IF "%1" == "help" (
    TYPE help.txt
    EXIT /B 0
)
ECHO '%1' is not an external command or batch file located in PATH & EXIT /B 0

通过这样的修改,我们可以确保在执行pathof help命令时,批处理文件会读取help.txt文件的内容并打印出来,而不是去查找名为help的可执行文件。这样就解决了原来的问题。

0