Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#4

AW: ShellExecute, Batch über runas starten

  Alt 26. Apr 2016, 23:29
Was gibt denn das ShellExecute zurück? Und was tut das Batchfile, wenn du ans Ende (vor das exit) mal ein "pause" setzt und es nicht versteckt ausführen lässt?

Davon abgesehen ist die Batch fehleranfällig. Ich korrigiere mal etwas:
Code:
@echo off

if "%~1"=="" goto :EOF

set "at=%~1AucTool.exe"

:s
del "%at%"
if exist "%at%" goto s

copy "%~dp0AucTool.exe" "%at%"
copy "%~dp0Auc1.dll" "%~1Auc1.dll"
copy "%~dp0Auc2.dll" "%~1Auc2.dll"

del "%~dp0AucTool.exe"

call "%at%"
exit
Sich darauf zu verlassen, dass
  • in den Pfaden keine Leerzeichen vorkommen
  • die relativen Pfade bzw. das Arbeitsverzeichnis stimmen/stimmt
ist fahrlässig, wenigstens aber leichtsinnig. Daher immer Anführungszeichen bei der Verwendung von Variablen, die Pfade enthalten, benutzen. Und immer absolute Pfade angeben, dann gibt es keinerlei Missverständnisse. Eigentlich fehlt da sogar noch eine Prüfung auf Existenz der DLL-Dateien oder der Schalter /Y um sie zu überschreiben. Denn wenn es mindestens eine davon gibt, bleibt die Batch mit einer Nachfrage stehen.

MfG Dalai
  Mit Zitat antworten Zitat