132749
Goto Top

Programm mit Laufwerkzuweisung und Registryabfrage per Batch starten

Hallo zusammen,
besteht die Möglichkeit ein Programm mit Laufwerkzuweisung und Registryabfrage per Batch zu starten?
Bislang nutze ich 5 Batch-Scripte was ich nun in einer Batch zusammenführen möchte wenn es denn möglich ist!?

Das Programm soll gestartet werden wenn einer der Laufwerkbuchstaben (C/D/E/F/X) in der Registry vorhanden ist:
HKEY_LOCAL_MACHINE\SOFTWARE\myProgramm "Drive"="C"

So sieht eine der 5 Batch bislang aus:

@ECHO OFF
set BEFOREDATE=%date:~%
date 11-01-2000
Start C:\Programme\myProgramm\Start.exe "C:\Programme\myProgramm\Start.INI"  
ping -n 10 127.0.0.1 > NUL 2>&1
date %BEFOREDATE%
END


Ich hoffe, dass ich mich richtig ausgedrückt habe und IHR mir hier weiterhelfen könnt.
Für die Mühe bedanke ich mich im Voraus und wünsche einen guten Start in die Woche

Content-Key: 356156

Url: https://administrator.de/contentid/356156

Printed on: April 19, 2024 at 22:04 o'clock

Member: rubberman
rubberman Nov 26, 2017 at 11:12:59 (UTC)
Goto Top
reg query "HKLM\SOFTWARE\myProgramm" /v "Drive" | >nul findstr /rec:" [CDEFX]" || exit /b  
Diese Zeile führt dazu, dass das Script sofort beendet wird, wenn keiner der angegebenen Laufwerksbuchstaben gefunden wird.

Steffen
Mitglied: 132749
132749 Nov 26, 2017 at 13:40:10 (UTC)
Goto Top
Vielen Dank für deine Antwort rubberman.
Das funktioniert ganz gut aber leider nur für das Laufwerk C!

Besteht die Möglichkeit einer Laufwerkszuordnung für die Zeile 7 vorzunehmen?
Das zu startende Programm hat bis auf den Laufwerkbuchstaben (C/D/E/F/X) immer den gleichen Pfad!

@ECHO OFF
reg query "HKLM\SOFTWARE\myProgramm" /v "Drive" | >nul findstr /rec:" [CDEFX]" || exit /b  

set BEFOREDATE=%date:~%
date 11-01-2000

Start C:\Programme\myProgramm\Start.exe "C:\Programme\myProgramm\Start.INI"  

ping -n 10 127.0.0.1 > NUL 2>&1
date %BEFOREDATE%
END
Member: rubberman
rubberman Nov 26, 2017 at 13:52:21 (UTC)
Goto Top
Mal sehen ob ich dich richtig verstanden habe ...
@echo off &setlocal

set "key=HKLM\SOFTWARE\myProgramm"  
set "value=Drive"  
set "validdata=CDEFX"  

set "drive="  
for /f "tokens=3" %%i in ('2^>nul reg query "%key%" /v "%value%" ^| findstr /reic:"\<[%validdata%]:*"') do set "drive=%%i"  
if not defined drive (
  echo Laufwerksbuchstabe ist nicht in %validdata% oder Key existiert nicht.
  pause
  exit /b
)
set "drive=%drive:~,1%:"  

set "BEFOREDATE=%date:* =%"  
date 11-01-2000

Start "" "%drive%\Programme\myProgramm\Start.exe" "%drive%\Programme\myProgramm\Start.INI"  

ping -n 10 127.0.0.1 > NUL 2>&1
date %BEFOREDATE%
Steffen
Mitglied: 132749
132749 Nov 27, 2017 at 20:23:41 (UTC)
Goto Top
Hallo rubberman,
Du hast mich richtig verstanden!

Vielen, Vielen Dank für deine Hilfe!

Das einzige was ich geändert habe ist die Zeile 11 die ich durch Zeile 21 ersetzt habe!