2012-12-26 91 views
2

我我的批处理文件,我想检查路径到以下位置设置批处理文件 - 如何检查是否路径的bin文件夹设置

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

在任何变量无论是在系统变量或用户定义的变量

我需要的是使用bin文件夹中的内容;如果什么用户没有安装上面引用的方式,但做了一些类似

C:\WindowsinstallerXML\bin 

或 d:代替

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

基本上:\ WindowsInstaller \ BIN

回答

0

您可以使用检查是否已设置,为什么不在脚本中明确设置?

+0

假如我服用此批处理文件到另一台计算机,并在该PC的路径斌看起来那么像 – user1926152

+0

d上述规定,如:\ wixinstalldir \ BIN然后 – user1926152

+0

所以,基本上这条道路可以是任何东西。我建议不要对环境变量进行反向查找,而是将该路径作为命令行参数。让脚本的用户决定指定什么路径。 – Icarus3

0
@echo off 
set input=%1 
IF DEFINED input (ECHO you entered %input%) ELSE (ECHO usage: script bin_file_path) 
0

如果你知道二进制文件之一的名字,那么你可以使用FOR变量~PATH:修改检查的路径二进制目前在路径中。它会给你的实际路径:)

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

如果你想使用的代码在一个批处理文件,则每个%必须加倍为%%

2

如果你想检查字符串的每个定义的变量,这将是方式。如果要专门检查替换set的路径变量与echo %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 
相关问题