2

我的批处理文件我想检查是否设置了以下位置的路径

 C:\Program Files(x86)\Windows Installer XML v3.5\bin

在系统变量或用户定义变量中的任何变量中

我需要使用 bin 文件夹的内容;如果用户没有安装上面引用的方式但做了类似的事情怎么办

C:\WindowsinstallerXML\bin

或 D:\WindowsInstaller\bin

4

4 回答 4

2

如果您想检查字符串的每个已定义变量,这就是方法。如果您想专门检查替换为的路径变量setecho %path%可以。

set | find "C:\Program Files(x86)\Windows Installer XML v3.5\bin" > NUL 2>&1 || goto badinstall

如果你想检查安装目录,我建议检查它是否有注册表值,如果有你可以像这样拉它。

for /f "tokens=3 delims=    " %%a in ('reg query \HKCU\path\to\subkey\here /v "keyhere" ^| findstr /C:"keyhere"') do set wixmlpath=%%a
于 2012-12-26T20:39:43.830 回答
0

您可以使用:

PATH="C:\Program Files(x86)\Windows Installer XML v3.5\bin";%PATH%

基本上,与其检查是否已设置,为什么不在脚本中明确设置?

于 2012-12-26T12:55:41.947 回答
0

如果您知道其中一个二进制文件的名称,则可以使用 FOR 变量~PATH:修饰符来检查该二进制文件的路径当前是否在您的 PATH 中。它会给你实际的路径:)

for %F in (someFile.exe) do @if "%~$path:F" neq "" echo %~$path:F

如果要在批处理文件中使用代码,则%必须将每个代码加倍为%%.

于 2012-12-26T15:03:19.717 回答
0
@echo off
set input=%1
IF DEFINED input (ECHO you entered %input%) ELSE (ECHO usage: script bin_file_path)
于 2012-12-26T13:23:43.980 回答