boeby
Goto Top

per batch file exes aus diversen Ordnern starten

Hi@all

Ich habe folgendes Problem :

Ordnerstruktur :

Hauptordner
-1. Unterordner
-2. Unterordner
usw

In jedem dieser Unterordner befindet sich entweder 1 oder 2 exes welche ausgeführt werden müssen !

Das soll jetzt in nem Batchfile funktionieren. Ich habe keine Ahnung wie ich das realisieren kann.
Bis jetzt ist folgendes :

dir /b /c >ordnerinhalt.txt
for /f /d /r %%f in (ordnerinhalt.txt) Do call %%f/*.exe


Die Unterordner heissen verschieden. Die Exes heissen verschieden. Die Anzahl wächst stetig.
Hinter dem ausführen muss ich noch parameter angeben können !
( Sind MS-Patches )


Ich hoffe schwer ihr könnt mir helfen. Sitze jetzt da schon 3-4h dran und komm nicht weiter.


Danke euch vielmal für eure Hilfe

Peace Böby

Content-ID: 25499

Url: https://administrator.de/forum/per-batch-file-exes-aus-diversen-ordnern-starten-25499.html

Ausgedruckt am: 24.12.2024 um 13:12 Uhr

Karo
Karo 08.02.2006 um 15:32:00 Uhr
Goto Top
Moin,

da es sich um MS-Patches handelt, ist die Frage ob die Batch dynamisch gebaut werden muss, zumal es vielleicht ein bischen kritisch ist mit den Hotfix Parametern (/passive /norestart). Ab und an gibt es Patches die aus Kompatibilitätsgründen noch die alte Syntax fahren.

Es geht auch so (läuft bestens):
(unter Sp1.us gibt es einen ordner Hotfix_Post_SP1, die Batch liegt unter SPPATH1)

set SPPATH1=\\SERVERNAME\SHARENAME\W2K3\Sp1.us
REM FOR CD/LOCAL INSTALL USE NEXT LINE
REM set SPPATH1=.

@echo.
@echo #####################################
@echo ### SERVER 2003 with Service Pack 1 ###
@echo #####################################

REM 20050614
REM Superseded 20050810 %SPPATH1%\Hotfix_Post_SP1\Q883939_MS05025_DS.exe /passive /norestart
%SPPATH1%\Hotfix_Post_SP1\Q896358_MS05026_DS.exe /passive /norestart
%SPPATH1%\Hotfix_Post_SP1\Q896422_MS05027_DS.EXE /passive /norestart
%SPPATH1%\Hotfix_Post_SP1\Q898458_MS05031_DS.EXE /passive /norestart

Karo
Boeby
Boeby 08.02.2006 um 16:10:46 Uhr
Goto Top
Um die Patches müsst ihr euch nicht kümmern. Das habe ich im Griff. Es geht hauptsächlich darum die exes auszuführen....
Momentan ist es schon in einer Batchdatei, die aber immer wieder angepasst werden muss...

Aber danke für deine Hilfe.
Karo
Karo 08.02.2006 um 16:23:40 Uhr
Goto Top
ooookay. Ich machs mir mal einfach und nehma an, das die EXE in den Unterverzeichnissen (kurz UVz) immer den gleichen namen haben, nämlich Hotfix und die batch im root liegt. (Achtung ... ich habs noch nicht getestet, das überlasse ich Dir face-wink )

ROOT
UVz1
UVz1



@echo off
dir /B /AD>VZ.txt
ECHO.
ECHO ACHTUNG: Es geht los
ECHO.
ECHO.
for /F "eol=; tokens=1 delims= " %%i in (vz.txt) DO (
echo %%i
"%%i\HOTFIX.exe" /passive /norestart
)


Karo
Boeby
Boeby 08.02.2006 um 16:30:24 Uhr
Goto Top
Danke dir.


Leider heissen die Exes verschieden. Das heisst es muss dort auch irgendwie eine Variable haben. Könnte man das mit einem "*" realisieren ?

2. Problem :
Kann man den Befehl mit den Verzeichnissen auslesen auch ohne zusätzliches file machen ?
Denn die Patches sollen auf eine CD gebrannt werden. Ich hatte vor das TXT auf einem Netzlaufwerk zu erstellen, aber wenns einfach geht wäre es schöner wenns ohne geht..

Weisst du da was ?


Danke und schönen Abend
Biber
Biber 08.02.2006 um 18:54:01 Uhr
Goto Top
Moin Böby,

::----snipp doTheHotfixes.bat---------
for /R c:\hauptordner %%i in (*.exe) do start /w "%%i" /passive /norestart
:: ----snapp doTheHotfixes.bat---------

HTH Biber
Karo
Karo 09.02.2006 um 10:01:06 Uhr
Goto Top
dem ist nischt mehr hinzuzufügen....
Biber ist halt der Beste face-smile Danke!

Karo
Boeby
Boeby 10.02.2006 um 16:18:53 Uhr
Goto Top
Danke dir, Biber.

Ja so passts.

Bin jetzt noch dran mit runas zu arbeiten, da ich mich in einer Domäne befinde.

Habe zwischendurch noch Probleme mit Pfadangaben, aber das sollte ich schon hinbringen.

kurze Frage: Wofür steht der Parameter /w ??


Falls was ist, werd ich mich wieder melden. Danke euch

Ein schönes Weekend
Peace Böby
Biber
Biber 10.02.2006 um 17:36:32 Uhr
Goto Top
Moin Böby,
der Parameter /w bei der Start.exe ...sorry, der unabsichtlich nicht erklärt.

Ist im weitesten Sinne ein Undokumentierter, denn bei "Start /?" kommt die Hilfe:

START ["Titel"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME] | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [Befehl/Programm]
[Parameter]

Start /W ist die intuitive, aber nicht dokumentierte Kurzform von "Start /Wait".

Soll bewirken: Warte nach dem Starten des (W32-)Programmes, bis dieses beendet wurde.

Denn Du willst ja die Updates NACHeinander durchlaufen lassen, nicht parallel.
Sollte Deine Start.exe den Parameter "/W" nicht interpretieren können, dann stattdessen "Start /wait ".

Schönes Wochenende
Biber
Boeby
Boeby 10.02.2006 um 20:05:34 Uhr
Goto Top
Ok danke dir.
Jetzt ist mir auch klar, wieso es nichts bewirkt hatte als ich anstatt start den befehl call ausprobiert habe....
Boeby
Boeby 13.02.2006 um 22:46:55 Uhr
Goto Top
Ich brauch nochmals eure Hilfe :
Es geht darum das ich ein Batch File per Runas öffnen möchte. Aber es will mir nicht gelingen. Ich sitz hier schon seit 2h oder mehr und schaffs einfach nicht. Bin echt am verzweifeln. Wenns wenigstens was schwieriges wär......
Naja, ich hoff ihr könnt mir helfen :

Wie gesagt möchte ich aus der einen Batch Datei per Runas eine andere öffnen. Zwischendurch klappt das auch auf meinem PC wenn ich es auf der Festplatte habe. Brenn ich es dann, klappt es nicht mehr und er sagt zu mir er fände die Datei nicht.

Es sieht momentan so aus :
http://boeby.game-host.org/diverses/patching1.JPG

Sorry, musste es ein bisschen modifizieren. Hoffe es stört euch nicht...


Ich hoffe ihr könnt mir helfen.
THX

Peace Boeby
Biber
Biber 14.02.2006 um 21:16:05 Uhr
Goto Top
Hmm, Böby,

ich bin auch vorsichtig mit einer Ferndiagnose, aber...
..was zumindest für das Betriebssystem bzw. auch für den RunAs-Befehl missverständlich sein könnte:
- in Thread oben sprachen wir noch von dem Start-Befehl. Der, zu dem ich die Hilfe "Start /?" gepostet habe.
- hier, wenn ich das richtig lese, benutzt Du auch eine Start.bat
-und in der RunAs-Zeile endet das mit "RunAs .... Start inst.bat /k"

Stell auf jeden Fall sicher, dass auch das doofe Windows mitbekommt, welche Start und welche Inst.bat gemeint ist und zu wem der Parameter /k gehört.
Also Pfadangaben, Dateiendungen und Anführungszeichen dazu.
Vielleicht hilft das schon - sonst poste doch bitte die genaue Fehlermeldung (was nicht gefunden wird).

Ich würde den RunAs-Befehl sinngemäß so schreiben:
RunAs ...... ".\inst.bat /k"
(wenn /k der Parameter ist, der zur inst.bat gehört).

Gruß Biber
Boeby
Boeby 14.02.2006 um 22:03:27 Uhr
Goto Top
über den Start befehl haben wir ja gesprochen im zusammenhang mit den Patches.
Mein jetztiges Problem liegt lediglich darin aus einer Batch-datei eine andere zu öffnen.
Klingt in meinen Augen sehr einfach, aber ich brings einfach nicht hin :
Hier das aktuelle File :
http://boeby.game-host.org/diverses/patching1.JPG

Das linke Batch File funktioniert. An dem liegt auch nicht das Problem. Ich möchte lediglich aus dem rechten Batch File das linke starten über Runas. Aber auch ohne dieses Runas funktioniert es nicht. Es wird ein leeres neues CMD-Fenster geöffnet :
http://boeby.game-host.org/diverses/cmd.jpg

Achtung: Das ganze wird später auf CD gebrannt. Deshalb kann ich keine vollen Pfade verwenden.

Hoffe du kannst damit was anfangen. Danke dir, Biber !
Biber
Biber 15.02.2006 um 08:11:43 Uhr
Goto Top
Moin Böby,

versuche es bitte mal in der RunAs-Zeile mit "RunAs ... "cmd.exe /c .\inst.bat".

Grüße
Biber
Boeby
Boeby 15.02.2006 um 14:44:18 Uhr
Goto Top
Ändert sich leider nichts daran...
Siehe :
http://boeby.game-host.org/diverses/cmd-fenster.jpg

Andere Idee ?
Boeby
Boeby 15.02.2006 um 14:52:42 Uhr
Goto Top
Sorry. Diese Meldung oben kommt nur wenn ich es normal ohne runas starten möchte.

Per Runas öffnet sich nichts.
Wenn ich das Batch File im geöffnetem CMD öffne, dann sagt er mir nach eingabe eines buchstabens :

Syntax von Runas:
Auflistung von "runas /?"

hmm

ich weiss echt nicht mehr weiter. Aber ich denke der Befehl würde jetzt stimmen um das andere Batch-File zu öffnen. Nur leider stimmt etwas am Runas nicht...
Boeby
Boeby 15.02.2006 um 16:53:26 Uhr
Goto Top
Ich glaube ich habs:

runas /user:%account% (
start .\inst.bat
)

Wird sich morgen zeigen ob ich recht habe.

Ich danke dir für deine Hilfe, Biber
Boeby
Boeby 22.02.2006 um 16:51:17 Uhr
Goto Top
geht leider noch nicht ganz. Ist irgendwie System abhängig...
Keine Ahnung wieso das es an den einen Orten funktioniert und an den anderen nicht...