0
我在製作程序。安裝後,它將運行一個需要知道應用程序文件夾位置的批處理文件。用空格讀取註冊表值的數據
我使用的安裝嚮導軟件創建一個代表程序的路徑的註冊表項,但「程序文件」中有一個空間,所以批處理輸出將是「C:\ PROGRAM」
我現在腳本是:
@echo off
setlocal ENABLEEXTENSIONS
set KEY_NAME="HKEY_LOCAL_MACHINE\Software\MarksRTZ\AV"
set VALUE_NAME=DataPath
FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
set ValueName=%%A
set ValueType=%%B
set ValueValue=%%C
)
if defined ValueName (
echo data "%ValueValue%"
echo name "%ValueName%"
echo type "%ValueType%"
) else (
echo Not found
)
DataPath
的值被設置爲[APPDIR]\data
上安裝,[APPDIR]
是用戶所選擇的位置。
但就像我說的,該腳本將始終輸出C:\Program
如果設置[APPDIR]在安裝類似C:\Program Files (x86)\MarksRTZ\AV\
(這實際上是默認值)
我該如何解決這個問題?
我也會注意到;批處理文件不是真正的程序,它將是在正確的工作目錄中啓動程序的簡單腳本。