2012-07-10 58 views
0

我有一個VBScript,搜索在SQLite文件(明文)的字符串。它由我的NSIS安裝程序運行以確定安裝參數。的VBScript不是從NSIS安裝中工作,但是當我手動運行它的工作原理是

當我運行命令行所有作品刨,並認爲它是要找的文件中的字符串的腳本。但是,當我從NSIS安裝所有的突然內通過ExecWait運行它,它說,它無法找到字符串了。它沒有說它不能打開文件或任何其他錯誤,它只是返回該字符串不存在。

下面是從NSIS腳本EXEC:

ExecWait `"$SYSDIR\wscript.exe" "$PLUGINSDIR\myscript.vbs" "success" "failure" "done" "1"` $2 

下面是引起了我這麼多的麻煩塊:

Function LookforValue(strFile) 
    iStatus = 0 
    Done = false 
    Const ForReading = 1 

    MsgBox(S_PATTERN) 
    MsgBox(F_PATTERN) 
    MsgBox(D_PATTERN)  

    Set objFSO = CreateObject("Scripting.FileSystemObject") 

    objFile = 0 
    Set objFile = objFSO.OpenTextFile(strFile, ForReading) 
     Do Until objFile.AtEndOfStream 
      strSearchString = objFile.ReadLine 
      colMatchesS = InStr(strSearchString,S_PATTERN) 
      colMatchesF = InStr(strSearchString,F_PATTERN) 
      colMatchesD = InStr(strSearchString,D_PATTERN) 

      If colMatchesS > 0 Then 
       iStatus = 2 
       exit do 
      End If 

      If colMatchesF > 0 Then 
       iStatus = 3 
       exit do 
      End If 

      If colMatchesD > 0 Then 
       iStatus = 4 
       exit do 
      End If 

     Loop 
    objFile.Close 



    LookforValue = iStatus 

端功能

僅供參考我使用的VBScript,而不是nsis命令,因爲nsis越來越模糊關於被另一個進程鎖定的文件。

+0

如何創建在VBScript中strFile路徑? – Anders 2012-07-11 03:49:01

+0

我已經確認strFile吐出了正確的文件路徑。我相信這個問題是與我試圖閱讀sqlite文件作爲一個文本文件,但我不知道。 – 2012-07-11 17:18:17

+0

爲什麼它會從命令行工作呢? – Anders 2012-07-11 17:39:47

回答

0

我並沒有真正解決問題,但我的結論是因爲我試圖用的OpenTextFile上只是巧合不想當其它腳本運行它的工作的二進制文件。

相關問題