# Batch-Datei versteckt ausführen



## Hero of the Day (15. Dezember 2004)

Mahlzeit!

Ich hab ein klitzekleines Problem mit einer Batch-Datei...
und zwar poppen beim ausführen immer die Fenster der DOS-Box hoch.
Wie kann ich das verhindern, also die Batch quasi im Hintergrund ausführen?
Zur Erklärung: Es handelt sich um eine Schleife, die endlos läuft...


----------



## MCIglo (15. Dezember 2004)

Nimm die hidden32.exe aus folgendem Thread:
http://www.tutorials.de/tutorials182138.html


----------



## Hero of the Day (15. Dezember 2004)

hidden32 funktioniert leider nicht. Gibt es nicht eine andere Möglichkeit?


----------



## Julien (15. Dezember 2004)

Willst du vielleicht die IT-Regelung deiner Schule umgehen?


----------



## MCIglo (15. Dezember 2004)

Funktioniert nicht?
Das ist mir aber neu.
Damit versteck ich immer meine Batch-Datein und so.

Ne weitere Möglichkeit wäre wenn du das remote via Telnet z.B. machst.
Dann hast du das Fenster halt auf dem andren PC offen. Aber wenn das ein Server ist, wäre das ja kein Problem.

Oder du programmierst dir einfach kurz was in VB oder C z.B.
Dort kannst du als Parameter übergeben, dass es invisible ist.

```
Shell("test.bat", AppWinStyle.Hide,False,)
```
Ich habs jetzt nicht getestet, aber das müsste der Syntax für VB.Net sein


----------



## Hero of the Day (15. Dezember 2004)

Nein es ist legal.
Das Ganze läuft auf unserem Lizenz-Server und erstellt Text-Files aus denen ersichtlich ist, wie viele Lizenzen gerade genutzt und wie viele frei sind.
Allerdings ist es etwas nervig, wenn d ewig solche Fenster hochpoppen und wieder verschwinden. Genau das will ich verhindern...

Kann leider keine Programmiersprache und der Server auch nicht... es muss aber irgendwie auch als Parameter oder befehl in der Konsole funktionieren.


----------



## MCIglo (15. Dezember 2004)

Wie sieht denn das Script aus, wenn da Fenster aufpoppen?
Vlt kann cih dir ja dann sagen, wies mit dem hidden32 geht


----------



## Hero of the Day (15. Dezember 2004)

```
echo off

hidden32 start /w artisan.bat

hidden 32 start /w autosea.bat

hidden 32 start /w decomsys.bat

hidden 32 start /w diab.bat

hidden 32 start /w diabsun.bat

hidden 32 start /w doors.bat

hidden 3 2start /w esacomp.bat

hidden 32 start /w Flex.bat

hidden 32 start /w lotus.bat

hidden 32 start /w matlab.bat

hidden 32 start /w orcat.bat

hidden 32 start rational.bat

hidden 32 start /w rhapsody.bat

hidden 32 start /w saber.bat

hidden 32 start /w tasking.bat
```
 
Das ist die Batch (mit hidden32-Befehl)

haupsache die aufgerufenen Batches bleiben schön im Hintergrund...


----------



## MCIglo (15. Dezember 2004)

Hero of the Day hat gesagt.:
			
		

> ```
> echo off
> 
> hidden32 start /w artisan.bat
> ...


1. zwischen 'hidden' und '32' kein leerzeichen
2. lass das 'start /w' weg, dann bleibt das alles im selben Fenster
da /w warscheinlich (gibts auf meiner 2k-Kiste nicht - laut /?) bedeutet, dass er erst weitermachen soll, wenn das geöffnette Fenster fertig ist, käme das aufs gleiche heraus.


----------



## Hero of the Day (15. Dezember 2004)

das Blank weglassen bringt nix...
/w heißt, erst weitermachen, wenn anderes Batch durchgelaufen ist
Das Läuft auf nem Win2k-Server... (ohne Probleme)


----------



## MCIglo (15. Dezember 2004)

hast du dir das hidden32 auch gezogen?
Ohne gehts nicht, das gehört nciht zu Windows 
Und dann probiers mal so:

```
start /w hidden32 artisan.bat
```
oder so:

```
artisan.bat
```

Im ersten Beispiel werden neue Fenster geöffnet, aber nciht angezeigt. Da könnte es zu Problemem mit /w kommen (musst du testen).
Im zweiten Beispiel wird einfach die neue bat im Fenster der alten ausgeführt. Kein PopUp und er wartet auch, bis sie fertig durchlaufen wurde, um mit der original bat weiter zu machen.


----------



## Hero of the Day (15. Dezember 2004)

wo muss das hidden32exe denn hin?
(bevor ich damit auf dem server rumexperimntiere)


----------



## MCIglo (15. Dezember 2004)

Hast die freie Auswahl.
Wenn du es so ansprechen willst, wie bisher gehandhabt entweder in %SystemRoot% oder in das Verzeichnis, in dem die .bat liegt.
Du kannst es aber auch an einen beliebigen anderen Ort legen und musst halt dann den Pfad übergeben:

```
start /w c:\deinpfad\hidden32 artisan.bat
```

Ich empfehle dir aber eine der beiden ersten Methoden.


----------



## Hero of the Day (15. Dezember 2004)

Es funktioniert..

Danke!

Aber wenn wir schon dabei sind:

Wie krieg ich es hin das die datei nur alle Minute einmal ausgeführt wird?


----------



## MCIglo (15. Dezember 2004)

Ich gaube, hierfür musst du dir jetzt ein extra Programm schreiben, was alle 60sec deine .bat startet. Mit dem Taskplaner ist die kleinste Einheit Tage


----------



## Hero of the Day (15. Dezember 2004)

Scheint doch mit dem Taskplaner zu gehn... Er startet jetzt (hoffentlich) alle 5 Minuten...


----------



## lleo (2. März 2010)

du kannsts auch mit choice versuchen und als time 0060 einstellen


----------



## Nawi0 (19. März 2010)

Hero of the Day hat gesagt.:


> Das ist die Batch (mit hidden32-Befehl)
> 
> haupsache die aufgerufenen Batches bleiben schön im Hintergrund...



Andere möglichkeit wäre das:

```
Start /min programm
```

alle 5 min müsste auch gehn:

```
@echo off
:home
start /w /min artisan.bat
start /w /min autosea.bat
start /w /min decomsys.bat
start /w /min diab.bat
start /w /min diabsun.bat
start /w /min doors.bat
start /w /min esacomp.bat
start /w /min Flex.bat
start /w /min lotus.bat
start /w /min matlab.bat
start /w /min orcat.bat
start /w /min rational.bat
start /w /min rhapsody.bat
start /w /min saber.bat
start /w /min tasking.bat
:sleep
Sleep 60
a=%time:~+3,-6%
set C=5
set /a d=%a%+%c%
if not %a% equ %d% goto sleep
goto home
```

mein zeit format in cmd:


```
echo %time%
> 0:42:59,35
```



lleo hat gesagt.:


> du kannsts auch mit choice versuchen und als time 0060 einstellen



gibt es unter xp nichtmehr soweit ich weis

#####
edit  #
####
man sollte vlt aufs datum schaun rofl -.-


----------



## guzu1996 (11. April 2010)

ping -n60 lochalhost>NUL


----------

