考虑以下批处理文件test.bat
:
CD C:\SOFTWARE
program.exe
这个脚本是从C:\ELSWHERE
C:\ELSWHERE> C:\test.bat
脚本退出后,当前工作目录是 nowC:\SOFTWARE
而不是以前的工作目录C:\ELSWHERE
。
该脚本将工作目录更改为C:\SOFTWARE
因为program.exe
requiresconfig.ini
位于C:\SOFTWARE
并使用当前工作目录定位它。如果软件program.exe
直接从,比如说,C:\
或者C:\ELSWHERE
使用它的绝对路径名运行,程序将无法读取它的配置并抛出错误。解决方案是CD
先到C:\SOFTWARE
文件夹并从那里运行程序。
在批处理文件中执行此操作的问题在于,这也会更改先前环境的工作目录,无论是主机 COMMAND.COM 工作目录还是另一个批处理文件。
这对于基于 NT 的命令提示符来说不是问题,它可以访问pushd
andpopd
以及其他有用的环境变量来保留旧的工作目录。但是在旧的 MS-DOS\Win9x command.com 的限制下可以做到这一点吗?
这甚至适用于 MSDOS6.22
密码.bat
它将当前目录存储到pwd变量中,将当前驱动器存储到驱动器变量中。
这可以用来恢复以前的目录。
在你的情况下