2013-09-27 45 views
1

如果.msi文件的路径在批处理文件中硬编码,我们需要从批处理文件运行.msi文件,该文件工作正常。有没有什么方法可以动态地获取.msi文件的路径,因为批处理文件和.msi文件存在于相同的文件夹位置?这将真正解决目的,因为需要复制到多个服务器...在同一位置执行批处理文件中的.msi

+0

以下链接帮助: [此处输入链接的描述] [1] [1]:http://stackoverflow.com/questions/2730643/how-to-execute-programs-in -the-same-directory-as-the-windows-batch-file – satyajit

回答

3
%~dp0install.msi 

%〜dp0给你你的bat文件的路径。 (注意,该最后一个反斜杠已经被包括在内。

尝试@echo %~dp0在批处理文件)

+0

如果我需要将log.txt文件添加到同一位置,该怎么办? – satyajit

+0

'echo我想记录下这一行>>%〜dp0log.txt'或者更好:'在你的批处理文件的开始处设置logfile =%〜dp0log.txt'然后'echo我想说的任何东西>>%logfile% ' – Stephan

+1

+1%〜dp0。除此之外,您可以在脚本开始处使用'PUSHD%〜dp0',在脚本末尾使用'POPD'将当前目录设置为仅在脚本持续时间内脚本的位置。我用它所有的时间。 – igelineau

0

如果批处理文件和MSI文件是在同一文件夹则需要在所有没有路径。批处理文件默认为当前目录 - 并将日志文件写入当前目录。

这只是一个问题,如果批处理文件从网络驱动器启动。