entfernt
Goto Top

Prüfung aus Batchdatei schmeißen

Hallo zusammen,

ich habe ein Problem...
Meine Lenovo Dockstation USB-C Gen2 hatte Probleme mit meinem Surface.
Nach dem fw-update der Dock klappte aber dann alles...
Jetzt hat die Dock aber anscheinend eine Macke, die Status Leuchte leuchtet durchgehend weiß. Das ist normalerweise nur wenn ein Gerät dran hängt und eingeschaltet ist, wenn das Surface dran hängt wird das sogar gar nicht unterstützt und ist die ganze Zeit aus.
Auch das anschließen eines Lenovo Laptops brachte keine Änderung, die Dock macht den Eindruck als wäre sie irgendwie "hängen geblieben" und es funktioniert keine Bildübertragung mehr. Laden und USB-Geräte funktionieren aber noch..

Naja gut also die üblichen Sachen, vom Strom nehmen, andere Endgeräte dran, andere Kabel etc funktionierten alle nicht...
Jetzt hatte ich die Idee einfach die DP-FW-Treiber nochmal neu drüber zu bügeln ABER die sind schon auf aktuellstem Stand und deshalb wird das Update nicht ausgeführt...
Daher war jetzt meine Idee, aus der .bat Datei einfach die Prüfung rauszuschmeißen ob die Treiber bereits aktuell sind, damit die neuinstallation anzuschmeissen.. Blicke aber bei der .bat Datei nicht durch... Kann mir jemand sagen, wie ich die anpassen müsste ?
@echo off
setlocal enableextensions enabledelayedexpansion
set RESULTCODE=0
set "PassString=Update result: 0"  
set "FailString=Ver0.00.000"  

cd /d %~dp0
cd ..\PDSolutionBillBoard
cd .\DriverInstallerCyUSB3\cyusb3
call DriverInstallerScript.bat \q
cd ..
cd ..
dp_gpio.exe -vid 17ef -pid A38F -g 1
echo BeforePintoHigh:%time%
cd ..\DP

if exist update.log del /F /S update.log >nul
if "%1"=="0" (  
    ping 127.0.0.1 -n 15 -w 1000 > nul
    echo AfterPintoHigh:%time%
    echo /**********DP FW Update Start**********/

    Wscript launchquiet_args.vbs "VmmDPTool.exe -s2 -u -fd -fr Panamera_fw_duce2_Ver5_07_001.bin"  

    if not exist update.log (
        ping 127.0.0.1 -n 2 -w 1000 > nul
    )

    set ErrorLevel=255
    for /f "tokens=1,2 delims=" %%a in (update.log) do (  
        echo %%a| findstr /C:"%PassString%" >nul && (  
            set ErrorLevel=0
        )
    )

    if !ErrorLevel!==0 set PASS=1
    echo ResultCode:!ErrorLevel!

    if defined PASS (
        if !ErrorLevel!==0 (
            echo "DP FW Update Success"  
        ) else (
            echo "DP Hub FW update is not required, the current version is equal or newer than the one in flash package"  
        )
    ) else (
       echo "DP FW Update Failed"  
       set RESULTCODE=99
    )

    ping 127.0.0.1 -n 5 -w 1000 > nul
    echo /**********DP FW Update Finish**********/
)


if "%1"=="1" (  
    GraphicCardDetector.exe
    echo ResultCode:!ErrorLevel!
    if !ErrorLevel!==0 (
        ping 127.0.0.1 -n 8 -w 1000 >nul
        echo AfterPintoHigh:%time%

        echo /**********DP Get Version Start**********/
        if exist VmmDPTool.exe (
            
            Wscript launchquiet_args.vbs "VmmDPTool.exe -v0 -s2"  

            if not exist update.log (
                ping 127.0.0.1 -n 2 -w 1000 > nul
            )

            set RightEXE=255
            for /f "tokens=1,2 delims=" %%a in (update.log) do (  
                echo %%a| findstr /r /C:"Ver[0-9].[0-9][0-9].[0-9][0-9][0-9]" >nul && (  
                    echo %%a| findstr /C:"%FailString%" >nul || (  
                        set RightEXE=0
                    )
                )
            )

            if not !RightEXE!==0 (
                if exist VmmDPTool.exe del /F /S VmmDPTool.exe >nul
            ) else (
                goto Output
            )
        )

        if exist VmmDPTool32.exe (
            copy /y VmmDPTool32.exe VmmDPTool.exe >nul

            Wscript launchquiet_args.vbs "VmmDPTool.exe -v0 -s2"  

            if not exist update.log (
                ping 127.0.0.1 -n 2 -w 1000 > nul
            )

            set RightEXE=255
            for /f "tokens=1,2 delims=" %%a in (update.log) do (  
                echo %%a| findstr /r /C:"Ver[0-9].[0-9][0-9].[0-9][0-9][0-9]" >nul && (  
                    echo %%a| findstr /C:"%FailString%" >nul || (  
                        set RightEXE=0
                    )
                )
            )

            if not !RightEXE!==0 (
                set FAULT=1
            ) else (
                goto Output
            )

            if defined FAULT goto ReplaceEXE
        ) else (
        :ReplaceEXE
            if exist update.log del /F /S update.log >nul
            if exist VmmDPTool.exe del /F /S VmmDPTool.exe >nul
            copy /y VmmDPTool64.exe VmmDPTool.exe >nul
            Wscript launchquiet_args.vbs "VmmDPTool.exe -v0 -s2"  
        )

        :Output
        echo ResultCode:!RightEXE!
        if not exist update.log (
            ping 127.0.0.1 -n 2 -w 1000 > nul
        )
        echo "Get Version :"  
        for /f "tokens=1,2 delims=" %%a in (update.log) do (  
            echo %%a
        )
        echo /**********DP Get Version Finish**********/
    ) else (
        set RESULTCODE=!ErrorLevel!
    )
)


cd ..\PDSolutionBillBoard
dp_gpio.exe -vid 17ef -pid A38F -g 0
ping 127.0.0.1 -n 1 -w 1000 > nul
exit /B %RESULTCODE%

VG

Content-Key: 11565687570

Url: https://administrator.de/contentid/11565687570

Printed on: May 1, 2024 at 17:05 o'clock

Member: em-pie
em-pie Sep 08, 2023 at 10:21:26 (UTC)
Goto Top
Moin,

Zeile 36 bis Zeil 39 dürften die Interessanten sein.

In Zeile 36 wird die Variable PASS gesetzt/ erstellt. Gibt es die, geht es weiter.

Ansonsten mal prüfen, ob di Zeile 23, 65, 90 und/ oder 112 "manuell" ausführen kannst.
Prüfe aber, was im Vorfeld alles validiert wird, nicht, dass da irgendwas in die Buchse geht.
Member: entfernt
Solution entfernt Sep 12, 2023 at 07:58:26 (UTC)
Goto Top
Dank dir aber komischer weise klappt die Docking jetzt einfach wieder ^^
Dann werde ich mal von solchen Experimenten lieber Abstand nehmen :D

VG