用PUSHD/POPD获得bat文件执行的路径

PUSHD/POPD是为了获得bat文件执行的路径。

这个很实用,比如我们想在程序里调用bat文件,bat文件内容如下,先安装一个windows service,然后启动它:

installutil.exe /i "MyWindowsService.exe"
net.exe start "MyWindowsService"

如果我是在做一个安装程序,我需要把这些文件包括bat文件先copy到一个安装目录,而且这个目录一般是用户自己选择的,安装程序并不知道。那我们要想让安装程序调用这个bat文件,就需要把bat文件写成这样:

PUSHD "%~dp0" //获得bat文件执行的路径
installutil.exe /i "MyWindowsService.exe"
net.exe start "MyWindowsService"
POPD

当然,为了保险起见,我们需要把installutil.exe和net.exe(都在c:\windows\system32\)copy到和bat文件相同的目录。这是为了保证有些操作系统可能是精简版或没有这些工具,安装程序也能顺利进行。

原文地址:https://www.cnblogs.com/michaelxu/p/2100249.html