我有一台装有 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
我怎样才能做到这一点?
该解决方案的@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命令支持这些值。