Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#5

AW: Build-a-Batch Batchdateiassistent f. Administratoren

  Alt 31. Jul 2014, 12:04
Joar, ich bastel auch manchmal noch mit *.CMD rum. (ist nur der neue Name für die *.BAT)

Da gibt es aber noch ein/zwei Befehlssätze, die man auch öfters mal gebrauchen kann.
Code:
CALL :ReadIni Project1.ini DisplayName ServiceName
CALL :Trim ServiceName %ServiceName% 
ECHO %ServiceName%
EXIT

:Trim
@REM @CALL :Trim VarName %VarName%
@SET %1=%2
@GOTO :EOF

:ReadIni
@REM @CALL :ReadIni FileName.ini ValueName VarName
@REM @ECHO ValueName = "%VarName%"
@FOR /f "tokens=2 delims==" %%a IN ('FIND "%~2=" %~1') DO @SET %~3=%%a
@GOTO :EOF
SLEEP kann man ganz gut über PING simulieren.



Den ErrorLevel prüft man (ich zumindestens) auch regelmäßig.
Code:
COPY a.txt b.txt
@IF ERRORLEVEL 1 ( ECHO. && ECHO FEHLER %ERRORLEVEL%: weiter mit beliebiger Taste && PAUSE > NUL )


Und sowas, wie das AdminManifest+UAC gibt es auch. (auf diesen Code bin ich fast schon genauso stolz, wie auf mein IF-ERRORLEVEL)
Code:
@REM Administratortest (Hoch=S-1-16-12288 oder Mittel=S-1-16-8192)
@IF /i "%1" == "-admin"  GOTO Admin
@WHOAMI /groups | FIND "S-1-16-12288" > NUL
@IF NOT ERRORLEVEL 1   GOTO Admin
@SET /P AdminName=Name des Admin-Kontos eingeben (nichts = "Administrator"):
@CALL :Trim AdminName %AdminName% 
@IF NOT DEFINED AdminName  SET AdminName=Administrator
RUNAS /user:%COMPUTERNAME%\%AdminName% "\"%~dpf0\" -admin"
@IF ERRORLEVEL 1 ( ECHO. && ECHO FEHLER %ERRORLEVEL%: weiter mit beliebiger Taste && PAUSE > NUL )
EXIT
:Admin

...hier nun der eigentliche Code...


Aber Achtung, vieles funktioniert ohne aktive Befehlserweiterung noch nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat