2012-12-26 90 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 
相關問題