MSDOS 6.22 如何获取批处理目录?
MSDOS 6.22 How to get batch directory?
我有一台装有 MSDOS 6.22 的旧 386 计算机(没有 windows)。所以我不能使用任何基于 cmd.exe(windows 的一部分)
的解决方案
我想将当前的 bat 脚本路径和名称传递给此 bat 代码中的另一个程序。
我尝试使用 %CD%
但它看起来只适用于 cmd.exe
我尝试使用 %0
参数,但它只包含 bat 的名称而不是具有完整路径的名称
@echo off
set myPath=%cd%
myprogram.exe %myPath%\%0
没用。当我从它的全名目录启动 bat 程序时,传递的参数是 \mybat.bat
。
变量解决后,我想要这样的东西:
@echo off
myprogram C:\BATCH\MYBAT.BAT
蝙蝠放在c:\batch
目录下,名字是mybat.bat
我该怎么做?
of @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%
这可用于获取当前目录 $P
、时间 $T
或日期 $D
,因为 PROMPT[=22] 支持这些值=]命令。
- 将当前工作文件夹写入文件
- 与另一个准备好的文件合并
- 调用生成的批处理文件以获取变量
- 照常使用
诀窍是只用一个命令创建一个辅助批处理文件:set VARIABLE=somestring
。我们通过将准备好的文件与 set VARIABLE=
(重要: 没有 换行符)和另一个具有所需值的文件连接来实现。
@echo off
cd>temp.txt
copy init.txt+temp.txt setvar.bat
call setvar.bat
myprogram.exe "%VARIABLE%\mybat.bat"
要创建 init.txt
(您只需执行一次(可重复使用的文件)):
在命令提示符下键入 COPY CON INIT.TXT
。
输入@SET VARIABLE=^Z
(按Ctrl-Z生成^Z
)
遗憾的是,我不知道如何在 DOS 中使用代码创建没有换行符的行)
回答了一个有趣的解决方案来获取工作文件夹,但这个更通用;它适用于任何命令的输出(只要它只是一行)。
例如,将上面代码中的 cd>temp.txt
替换为 dir | find "bytes free" > temp.txt
。
(答案来自我的 )
我有一台装有 MSDOS 6.22 的旧 386 计算机(没有 windows)。所以我不能使用任何基于 cmd.exe(windows 的一部分)
的解决方案我想将当前的 bat 脚本路径和名称传递给此 bat 代码中的另一个程序。
我尝试使用 %CD%
但它看起来只适用于 cmd.exe
我尝试使用 %0
参数,但它只包含 bat 的名称而不是具有完整路径的名称
@echo off
set myPath=%cd%
myprogram.exe %myPath%\%0
没用。当我从它的全名目录启动 bat 程序时,传递的参数是 \mybat.bat
。
变量解决后,我想要这样的东西:
@echo off
myprogram C:\BATCH\MYBAT.BAT
蝙蝠放在c:\batch
目录下,名字是mybat.bat
我该怎么做?
但您也可以构建不需要任何预定义文件的解决方案。
@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%
这可用于获取当前目录 $P
、时间 $T
或日期 $D
,因为 PROMPT[=22] 支持这些值=]命令。
- 将当前工作文件夹写入文件
- 与另一个准备好的文件合并
- 调用生成的批处理文件以获取变量
- 照常使用
诀窍是只用一个命令创建一个辅助批处理文件:set VARIABLE=somestring
。我们通过将准备好的文件与 set VARIABLE=
(重要: 没有 换行符)和另一个具有所需值的文件连接来实现。
@echo off
cd>temp.txt
copy init.txt+temp.txt setvar.bat
call setvar.bat
myprogram.exe "%VARIABLE%\mybat.bat"
要创建 init.txt
(您只需执行一次(可重复使用的文件)):
在命令提示符下键入 COPY CON INIT.TXT
。
输入@SET VARIABLE=^Z
(按Ctrl-Z生成^Z
)
遗憾的是,我不知道如何在 DOS 中使用代码创建没有换行符的行)
例如,将上面代码中的 cd>temp.txt
替换为 dir | find "bytes free" > temp.txt
。
(答案来自我的