目标:发出一个简单的命令,将当前目录添加到 PATH 语句中。我宁愿调用一个批处理文件,比如 xpath(其中 xpath.bat 位于活动路径中),而不是输入每一个痛苦的笔划。
不起作用:path=%path%;%cd%
在 command.com 下不起作用,无论是批处理还是命令行,尽管它在更高版本的 cmd.exe 系统中可以完美运行。
令人困惑:可以通过这种方式操作几个其他系统变量或字符串。
%CD% (或 CD) 的行为有所不同。
环境:我在 Virtualbox 5.2.22 下使用 FreeDOS 1.2,
此故障在 MS-DOS 6.22 和 Vbx 5.2.22 下均存在
C:\SSH>path
PATH=C:\FDOS\BIN
C:\SSH>set newdir=C:\SSH\CONTRIB
C:\SSH>echo %newdir%
C:\SSH\CONTRIB // success
C:\SSH>path=%path%;%newdir%
C:\SSH>path
PATH=C:\FDOS\BIN;C:\SSH\CONTRIB // success
*** 但
C:\SSH>path
PATH=C:\FDOS\BIN
C:\SSH>set newdir=%cd%
C:\SSH>echo %newdir%
ECHO is on // unexpected
C:\SSH>path=%path%;%newdir%
C:\SSH>path
PATH=C:\FDOS\BIN;C:\SSH\CONTRIB //unchanged
“echo is on” 以及其他失败都与 %cd% 解析为无一致。
因此 CD 和 PATH 一样,似乎一个 COMMAND,其输出可以通过将其评估为 %VARIABLE% 来捕获,但这可能只是所需的外观。听起来这两者根本不同,并且 CD 在 COMMAND.COM 下无法一致地工作。
请注意,还有另一个问题,其中有一个在 cmd.exe 下运行良好的解决方案。这不是那个。
答案1
ratburgerian。只需尝试使用小型 DOS 实用程序(如 PATHA.COM 或任何类似的实用程序)即可。其语法如下:
PATHA [text or /c] [ /f /d /e /b /o ]
PATHA 提供了多种修改当前路径的方法。
PATHA
:显示当前路径。
PATHA [text]
:将目录 [文本] 添加到当前路径。
- 选项
- `[text]` :单个目录(例如 c:\DOS)或以 ; 分隔的多个目录(例如 c:\;c:\dos)。
- /c :使用当前工作目录作为[文本]。
- /b:添加到路径的开头。
- /d:从路径中删除。
- /e:更改之前编辑结果路径。
- /o:覆盖检查目录是否存在。
- /f :用文件 [text] 中的路径替换路径,如果未输入 [text],则用 \autoexec.bat 中的路径替换路径。
Note: options may be combined. (i.e. PATHA /c /e).
版权所有 1992 HGB Enterprises,保留所有权利。Ver 1.1
我使用的版本是这个:
patha.com 14112 15-04-1992 19:39 “patha.com”
这确实适用于我的真实 DOS(M$ 6.22 和 Novell 7.15)PC。