Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Build-a-Batch Batchdateiassistent f. Administratoren

  Alt 31. Jul 2014, 13: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat