MSDOS 6.22 如何获得批处理目录?

sar*_*oka 4 dos batch-file

我有一台装有 MSDOS 6.22 的旧 386 计算机(没有 Windows)。所以我不能使用任何建立在 cmd.exe(windows 的一部分)上的解决方案

我想将当前的 bat 脚本路径和名称传递给此 bat 代码中的另一个程序。

我尝试使用%CD%但它看起来只适用于 cmd.exe 我尝试使用%0参数,但它只包含 bat 的名称而不是带有完整路径的名称

@echo off
set myPath=%cd%
myprogram.exe %myPath%\%0
Run Code Online (Sandbox Code Playgroud)

它不起作用。传递的参数是\mybat.bat当我从它的全名目录启动 bat 程序时。变量解析后,我想要这样的东西:

@echo off
myprogram C:\BATCH\MYBAT.BAT
Run Code Online (Sandbox Code Playgroud)

bat 放置在c:\batch目录中的位置,它的名称是mybat.bat

我怎样才能做到这一点?

jeb*_*jeb 5

该解决方案@Stephan是好的,但需要一个预定义的帮助文件。

但是您也可以构建不需要任何预定义文件的解决方案。

@echo off

>temp1.bat echo @PROMPT SET _CD=$P
>temp2.bat command /c temp1.bat
call temp2.bat
del temp1.bat
del temp2.bat

echo currentDir=%_CD%
Run Code Online (Sandbox Code Playgroud)

这可用于获取当前目录$P、时间$T或日期$D,因为PROMPT命令支持这些值。