tompazi
Goto Top

2 Fragen über Batch Dateien

Hallo,

1.
Wie entleere ich meinen Papierkorb mit einer Batch Datei?
Ich finde nämlich keinen Pafd für den Papierkorb.
Ich würde das gerne in mein kleines Herunterfahren Skript einbauen...

@echo off
set /p "Antwort=Computer Herunterfahren?"
if /i "%Antwort%"=="Ja" goto kill
pause
exit
:Kill
shutdown -s /t 000
echo Der Computer wird Jetzt Heruntergefahren!
pause
exit

2.
Zum Weiterbilden meines Batchprogrammierungswissen:
Soll das Programm so oft wie Anzahl öffnen...

set /p "prog=Programmname und Anzahl:"
start %prog%.exe %Ahnzahl%

Bsp: iexplore 15
soll 15 internet Explorer aufmachen

Aber WIE?

Danke Thomas

Content-Key: 67878

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

Printed on: April 23, 2024 at 21:04 o'clock

Member: Biber
Biber Sep 04, 2007 at 18:23:22 (UTC)
Goto Top
Moin Tompazi,

zu 1)

Dazu wäre eigentlich ein anderer Weg sinnvoll, nämlich das standardmäßige Leeren des Papierkorb via Logoff-Skript, dieses wiederum hinterlegt per gpedit.msc.

Geht natürlich auch in so einer handgestrickten Knopfdruck-Batchdetei - Du musst allerdings vorher ein bissi unter GUI vorarbeiten.

  • Am CMD-Prompt erstellst Du Dir eine Parameterdatei für die CleanMgr.exe mit
cleanmgr.exe /sageset:123
Es erscheint ein GUI-Fenster mit dem Titel "Einstellungen für das Bereinigen des Datenträgers".
Dort wählst Du das achte Kontrollkästchen ("Papierkorb") aus und von den anderen Möglichkeiten watt Du wutt.
  • [OK] drücken
  • In Deiner Batchdatei rufst Du dann auf
cleanmgr.exe /sagerun:123
  • und schaust dann zu, wie das Auswischen des Papierkorbs voranschreitet.
  • Sinnvollerweise solltest Du den Papierkorb VOR dem Aufruf von Shutdown einfügen.
  • Mit der Logoffskript-Methode bräuchtest Du Dich nicht darum kümmern, welche Reihenfolge wohl schlauer wäre.

zu 2. Ein Programm in x Instanzen öffnen
...wenns schee macht...
So etwas macht man/frau bei Batch- und sonstigen Skriptdateien meist mit einer Zählschleife von 1 bis x.
Die Batchsyntax dazu wäre...
for /L %%i in (1, 1, 15) do <whatever>
(für 15 Aufrufe) wobei Du statt des <whatever>s den iexplore-Aufruf einträgst.

BTW - es ist Dir bekannt, dass andere Menschen Aufwand betreiben, den Internet Explorer vollständig von Ihrem Computer zu entfernen?
Und dass Du mit dem Ansinnen, den IE auch noch 15x im Synchron-Absturz zu sehen wahrscheinlich ein aussichtsreicher Kandidat für die große Herbst-Guinness-Weltrekordversuchsshow bei irgendeinem Deppensender bist?
Machst Du das, um Thomas Gottschalk auf die Papageienjacke klopfen zu können oder geht es um eine andere Wette? face-wink

Grüße
Biber

P.S. Statt der Sage-Zahl 123 darfst Du natürlich auch 4711 bestimmen. Oder 42.
Member: Tompazi
Tompazi Sep 04, 2007 at 18:40:01 (UTC)
Goto Top
Danke =)

Also Frage 1
funktioniert jetzt.
Danke

Frage 2
ich mach das Zum Weiterbilden meines Batchprogrammierungswissen...

Wie baue ich das da Sinnvoll ein?
set /p "prog=Programmname und Anzahl:"
start %prog%.exe %Ahnzahl%
Member: Biber
Biber Sep 04, 2007 at 19:02:19 (UTC)
Goto Top
Moin Tompazi.

  • "Welches Programm" und "Anzahl" musst Du schon einzeln, also mit 2 Set /p-Abfragen einlesen.
set /p "prog=Programmname: "  
set /p "Anzahl= und Anzahl:"  

  • und dann eine FOR/L-Anweisung. Ich dachte, ich hätte es schon geschrieben.
for /L %%i in (1,1,%anzahl%) do Start %prog%
REM Oder: for /L %%i in (1,1,%anzahl%) do %prog%

  • Zum Testen reicht auf auf jeden Fall am CMD-Prompt:
set anzahl=15
set prog=iexplorer
for /L %i in (1,1,%anzahl%) do echo %prog%

Grüße
Biber
Member: Tompazi
Tompazi Sep 04, 2007 at 19:23:44 (UTC)
Goto Top
Danke,
Das Funktioniert jetzt undeine Frage noch:

set /p "prog=Programmname:"
set /p "Anzahl= Wie oft soll das Programm gestartet werden?"
for /L %%i in (1,1,%anzahl%) do Start %prog%.exe

Ich will das er bevor dem starten noch einen check macht ob es das Programm gibt.
Also
If not exist %prog%.exe echo Error
Funktioniert logischerweiße nicht
Member: Biber
Biber Sep 04, 2007 at 19:55:58 (UTC)
Goto Top
Moin Tompazi,

das würde nur funktionieren, wenn
  • entweder der Benutzer weiß und eingibt, auf welchem Lw/Pfad die Applikation liegt
  • oder Du mit vertretbarem Aufwand alles das per Batch finden könntest, was so ein 5- GigaByte-Klotz wie Vista oder XP sich eben mal mit wenigen hundert DLL-Aufrufen aus der Registry+ein paar Systempfaden zusammensammelt.

Ich denke, beide Alternativen lassen sich ausschließen - und das ist nicht persönlich gemeint.

Falls die Aufgabe der Batchdatei wäre "Geben Sie eine Datei an, die kopiert werden soll" oder gelöscht oder umgewandelt oder eingelesen etc - dann könntest Du die konkrete Existenz dieser Datei auf Lw/Pfad XY prüfen.

Eine *.exe-Datei wiederfinden, die Windows als eine Windows-Applikation "kennt", das ist kein vertretbarer Aufwand für Deine Anforderung.

Heißt nicht "Geht nicht", sondern nur "Würde länger dauern als der Benutzer auf das Starten der Appz-Fenster warten würde."

Grüße
Biber
Member: Tompazi
Tompazi Sep 05, 2007 at 16:43:43 (UTC)
Goto Top
Danke,
das wollte ich wissen

Thomas