【问题标题】:Executing the .msi from batch file in same location从同一位置的批处理文件执行 .msi
【发布时间】:2013-10-03 21:29:29
【问题描述】:

我们需要从批处理文件中运行一个 .msi 文件,如果 .msi 文件的路径在批处理文件中被硬编码,则该文件运行良好。有没有办法动态获取 .msi 文件的路径,因为批处理文件和 .msi 文件存在于同一文件夹位置?这将真正解决这些需要复制到多个服务器的目的......

【问题讨论】:

标签: batch-file


【解决方案1】:
%~dp0install.msi

%~dp0 为您提供 bat 文件的路径。 (请注意,最后一个反斜杠已经包含在内。

在你的批处理文件中尝试@echo %~dp0

【讨论】:

  • 如果我需要将 log.txt 文件添加到同一位置怎么办?
  • echo I want to log this line >>%~dp0log.txt 或更好:set logfile=%~dp0log.txt 在批处理文件的开头,然后是echo whatever I want to say >>%logfile%
  • +1 表示 %~dp0。除此之外,您可以在脚本开头使用PUSHD %~dp0,在脚本结尾使用POPD,仅在脚本执行期间将当前目录设置为脚本所在的位置。我一直在使用它。
  • %~dpX 格式的一些文档位于for /? 的末尾。它们非常方便。
【解决方案2】:

如果批处理文件和 msi 文件在同一个文件夹中,则根本不需要路径。批处理文件默认为当前目录 - 并将日志文件写入当前目录。

只有从网络驱动器启动批处理文件时才会出现此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-09
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多