Jump to content

dabbamonkeyyy

Members
  • Gesamte Inhalte

    3
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von dabbamonkeyyy

  1. Super, der Tipp hat mir geholen! Ich habe jetzt Anführungszeichen benutzt statt %. Danach ist mir ein weiterer Folgefehler aufgefallen, den ich dadurch bemerken konnte. Den habe ich auch behoben und siehe da, es funktioniert :) Danke!
  2. Hallo alle Zusammen, ich habe ein Batch-Skript geschrieben, welches ermöglichen soll, ein Programm zu installieren und direkt danach eine Upgrade-Datei in den entsprechenden Pfad zu kopieren. Hier einmal der Code: @echo off :: BatchGotAdmin :------------------------------------- REM --> Check for permissions IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" ( >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system" ) ELSE ( >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" ) REM --> If error flag set, we do not have admin. if '%errorlevel%' NEQ '0' ( echo Requesting administrative privileges... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params= %* echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" exit /B :gotAdmin pushd "%CD%" CD /D "%~dp0" start /wait "Installation Programm" "F:\xxx\yyy.exe" if exist %C:\Program Files (x86)\xxx\yyy.EXE% ( xcopy "%cd%\Datei.exe" "C:\Program Files (x86)\xxx" /y /q ) Zu Erklärung des Codes: Der größte Teil ist ein Skript, den ich im Internet gefunden habe. Das dient dazu, dass der Nutzer (Admin) nur noch Bestätigen muss, wie bei einer normalen Installation. Die Line "start /wait (...)" startet die Installationsdatei. Die letzten Zeilen sollen die Upgrade-Datei nur noch kopieren, falls der Pfad schon existiert. Da dieser Anfangs noch nicht existiert, habe ich den Befehl "/wait" davor eingefügt, um die Installation abzuwarten, und danach erst die Datei in den korrekten Pfad reinzukopieren. Problem: Die Befehle funktionieren unabhängig voneinander super. Wenn das Programm installiert ist, kopiert er auch schon die Datei rüber. Das habe ich getestet, indem ich die originale Datei.exe gelöscht habe und die Upgrade-Datei (auch Datei.exe) durch den Befehl in den Programmpfad kopiert habe. Wenn ich aber beide Befehle in einem Skript (wie im obigen Code aufgeführt) ausführe, installiert er die Datei. Die Upgrade-Datei zieht er am Ende aber nicht mit rein. Weiß jemand, wo der Fehler liegt? Ihr müsst wissen, dass ich 0 Ahnung von Batch habe. Ich habe mir alles vom Internet zusammengesucht und der obige Code ist dabei entsanden.. PS.: Man hat mir öfters schon PowerShell empfohlen. Ich wollte jetzt nicht noch etwas neues anfangen, da die Lösung mir schon sehr nah am Ziel erscheint. Vielen dank im Voraus, euer dabbamonkeyy
  3. Hallo alle zusammen, ich habe ein Instalaltionsdatei, welche nicht die aktuellste Version enthält. Das Update habe ich nun im Internet gefunden als einzelne Datei. Ich möchte nun eine Batch-Datei schreiben, welche die original Installationsdatei ausführt und direkt die Update-Datei in den passenden Ordner verschiebt. Soweit so gut, wenn ich einen absoluten Pfad nutze, ist das relativ easy. Aber ich möchte den Speicherort gerne variabel halten, d.h., wenn ich bei der Installation einen anderen Speicherort angebe, soll die Batch-Datei das erkennen können. Das soll alles am besten in einem Schritt funktionieren. Meine Idee: 1.Batch-Datei schreiben zu .exe-Datei konvertieren (nenn wir sie "setup.exe") 2.setup.exe ausführen. 3.die eigentliche Installationsdatei soll ausgeführt werden. 4.direkt im Anschluss soll die Update-Datei in den Ordner kopiert werden, in dem das Programm installiert wurde. Wir gesagt möchte ich, falls der Speicherpfad nicht der Standardpfad sein sollte, dass die Batch-Datei diesen Pfad erkennen kann und die Update-Datei dann demensprechend da rein kopiert. Hat jemand eine Idee, wie das geht? Vielen Dank im Voraus, dabbamonkeyyy
×
×
  • Neu erstellen...