Ich habe die unten Bat-Datei geschrieben, um die ZIP-Dateien zu extrahieren. Aber das funktioniert nicht, wenn ich es von Jenkins ausführe. Ich vermute, dass dies daran liegt, dass der Versuch, die Kopier-UI und den Dienst zu starten, dies verhindert, da Windows-Dienste die Arbeit mit UIs nicht erlauben. Gibt es eine Möglichkeit, das folgende Skript zu bearbeiten, um das unkompilierte Entpacken durchzuführen? Wenn es andere Tools gibt, geben Sie bitte ein Beispiel an.extrahieren Zip-Dateien still mit Batch-Datei
@echo off
FOR /D %%p IN ("%CD%\Setups\*.*") DO rmdir "%%p" /s /q
call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=k:update-service:1.0.3 -Ddest=Setups/Services/update-service.jar
call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=k:installer-prerequisites:1.0.0 -Ddest=Setups/PreRequisites/installer-prerequisites.zip -Dpackaging=zip
call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=k:-apps:1.0.0 -Ddest=Setups/Apps/-apps.zip -Dpackaging=zip
call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=k:mosquitto:1.0.0 -Ddest=Setups/mosquitto/mosquitto.zip -Dpackaging=zip
call mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -DrepoUrl=http://10.101.15.190:8081/nexus/content/repositories/releases/ -Dartifact=k:ble-service:1.0 -Ddest=Setups/Services/ble-service.jar
for /r %%i in ("*.zip") do (
Call :UnZipFile "%%~dpi" "%%~fi"
del /S /Q "%%~fi"
)
exit \b
:UnZipFile <ExtractTo> <newzipfile>
setlocal
set vbs="%temp%\_.vbs"
if exist "%vbs%" del /f /q "%vbs%"
>"%vbs%" echo Set fso = CreateObject("Scripting.FileSystemObject")
>>"%vbs%" echo If NOT fso.FolderExists("%~1") Then
>>"%vbs%" echo fso.CreateFolder("%~1")
>>"%vbs%" echo End If
>>"%vbs%" echo set objShell = CreateObject("Shell.Application")
>>"%vbs%" echo set FilesInZip=objShell.NameSpace("%~2").items
>>"%vbs%" echo objShell.NameSpace("%~1").CopyHere(FilesInZip)
>>"%vbs%" echo Set fso = Nothing
>>"%vbs%" echo Set objShell = Nothing
cscript //nologo "%vbs%"
if exist "%vbs%" del /f /q "%vbs%"
endlocal
Bitte verwenden Sie eine Befehlszeile "Entpacken" Werkzeug. Es gibt viele .. – Jayan
@Jayan obwohl es viele Unzip-Tools gibt, die verwendet werden könnten, bedeutet das nicht, dass sie immer eine Möglichkeit sind, verwendet zu werden. Der Grund, warum der Batch meistens verwendet wird, bedeutet, dass er mit vielen verschiedenen Windows-Computern kompatibel sein muss, die möglicherweise nicht alle über ein "Unzip-Tool" verfügen. –