52634
Goto Top

Programme per Batch installieren aus verschiedenen Ordnern.

Hallo erstmal,
ich habe eine Batch die auf verschiedenen Computern eingesetz wird, da die batch die Programme immer aus verschiedenen ordnern installiert muss ich die ordner immer wieder anpassen. Wie kann man das umgehen oder so...

Hier die Batch:

:anfang:

@echo OFF
echo Bitte auswaehlen!
echo Abmelden: 1
echo Neustarten: 2
echo Herunterfahren: 3
echo Rechner sperren: 4
echo RemoteDesktopGUI 5
echo CHKDSK/Defrag C: 6
echo CHKDSK/Defrag D: 7
echo SFC /scannow 8
echo Loesche Temporaere 9
echo Windows Resource Kit Tools installieren 10
echo Opera installieren 11
echo Thunderbird installieren 12
echo Gruppenrichtlinieneditor 13
echo Computerverwaltung oeffnen 14
echo Freigegeben Ordner 15
echo Ereignisanzeige 16
echo Zertifikatsmanager 17
echo CMD starten 18
echo pingen 19
echo Programm schliessen 20

set /P zahl=Bitte Zahl eingeben:

if "%zahl%" == "1" shutdown -l
if "%zahl%" == "2" shutdown -r
if "%zahl%" == "3" shutdown -s
if "%zahl%" == "4" rundll32.exe user32.dll LockWorkStation
if "%zahl%" == "5" mstsc
if "%zahl%" == "6" goto :causw:
if "%zahl%" == "7" goto :dausw:
if "%zahl%" == "8" sfc /scannow
if "%zahl%" == "9" del "%TEMP%" /S /Q del "%TMP%" /S /Q MORE
if "%zahl%" == "10" "D:\Eigene Dateien\Irgendwas\Batch Dateien\noch basteln\myTools\install\Windows Resource Kit.exe"
if "%zahl%" == "11" "D:\Eigene Dateien\Irgendwas\Batch Dateien\noch basteln\myTools\install\Opera.exe"
if "%zahl%" == "12" "D:\Eigene Dateien\Irgendwas\Batch Dateien\noch basteln\myTools\install\Thunderbird.exe"
rem die noch unattended machen und in anderen ordner wenn alles fertig ist
if "%zahl%" == "13" start gpedit.msc
if "%zahl%" == "14" start compmgmt.msc
if "%zahl%" == "15" start fsmgmt.msc
if "%zahl%" == "16" start eventvwr.msc
if "%zahl%" == "17" start certmgr.msc
if "%zahl%" == "18" start cmd
if "%zahl%" == "19" goto :ping:
if "%zahl%" == "20" taskkill /F /IM cmd.exe

CLS

echo Wiederholen?
set /p Wiederholen="Ja=j/Nein=n:"
if "%Wiederholen%" == "j" goto anfang
if "%wiederholen&" == "n" goto :schließen:
CLS

:causw:
echo CHKDSK oder Defrag HDD C:\?
set /P hddc="CHKDSK=c/Defrag=d/Abrechen=a: "
if "%hddc%" == "c" chkdsk c: /F /R /V
if "%hddc%" == "d" defrag c:
if "%hddc%" == "a" goto :anfang:
CLS

goto :anfang:
CLS

:dausw:
echo CHKDSK oder Defrag HDD D:\?
set /P hddd="CHKDSK=c/Defrag=d/Abrechen=a : "
if "%hddd%" == "c" chkdsk d: /F /R /V
if "%hddd%" == "d" defrag d:
if "%hddd%" == "a" goto :anfang:
CLS

:ping:
set /P ip=IP eingeben:
ping "%ip%"
CLS

echo Nochmal?
set /P nochmal=Ja=j/Nein=n

if "%nochmal%" == "j" goto :ping:
if "%nochmal%" == "n" goto :anfang:
CLS

goto :anfang:

:schließen:
taskkill /F /IM cmd.exe


rem Variablen:
rem "%Zahl%" auswaehlen funktion
rem "%wiederholen%" Programm nochmal oder schließen
rem "%hddc%" / "%hddd%" weche funktion bei platte c/d
rem "%ip%" Ip-adresse
rem "%nochmal%" nochmal pingen
rem
rem
rem
rem

Content-Key: 67139

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

Printed on: February 2, 2023 at 18:02 o'clock

Member: MRosoft
MRosoft Aug 27, 2007 at 08:00:41 (UTC)
Goto Top
Mach doch einfach eine Netzwerkfreigabe und leg die Dateien dort ab. Dann wären die Dateien immer an der gleichen Stelle.
Mitglied: 52634
52634 Aug 27, 2007 at 10:25:19 (UTC)
Goto Top
Die Idee ist gut, aber da ich auch aus verschiedenen Computern(mit und ohne Inet ) arbeite geht das nicht.
Member: Superdau
Superdau Aug 27, 2007 at 17:55:38 (UTC)
Goto Top
dann halt per cd oder usb stick
gibt ja mitlerweile genügen speicherplatz bei transportierbarem

ich weiß nich wie das unter windows aussieht per html klappt sowas ja
also ne verknüpfung zu den jeweiligen dateien und die verknüpfung halt im selben ordner wie die batch
der pfad wäre dann ja
/"dateiname.exe"
Mitglied: 52634
52634 Aug 27, 2007 at 18:19:11 (UTC)
Goto Top
Top, probier ich heut Nacht noch aus meld mich dann morgen ob's geklappt hat.
Mitglied: 52634
52634 Aug 27, 2007 at 18:24:15 (UTC)
Goto Top
Top, probier ich heut Nacht noch aus meld
mich dann morgen ob's geklappt hat.

EDIT: Habs grad gemacht und funktioniert nicht.

Ich denke ich mach das so, dass die Batch rausfindet unter welchem LW-Buchstaben sie liegt und dann von da aus per Parameter die *.exe startet.
Member: MRosoft
MRosoft Aug 28, 2007 at 07:03:11 (UTC)
Goto Top
For /F "tokens=* Delims=:" %%i in ("%0") do set Appath=%%~di%%~pi

mit dem oberen Befehl wird der aktuelle Pfad in die Variable Appath geschrieben.

%appath%DEINPROGRAMM.exe

Das wäre dann ein Aufruf des Programmes DEINPROGRAMM.exe welches im gleichen Pfad wie die Batch liegt. das \ fehlt nicht weil es in der Variable enthalten ist. wenn du die Batch z.B. aus c:\winnt heraus startest dann wird der Pfad c:\winnt\ in die Variable geschrieben.
Mitglied: 52634
52634 Aug 28, 2007 at 19:21:14 (UTC)
Goto Top
Coooooooooooooooooool...
funktioniert perfekt... DANKE!!!

aber wie funktioniert der Befehl genau, hab mir mal für "for" die Hilfe/Beschreibung ind der CMD angeguckt verstehe aber immer noch nicht wie er funktioniert.

DANKE!