pago159
Goto Top

Beschleunigung des löschens mit Batch-Datei

Hi, kann mir vll einer von euch sagen, wie ich diese Batch zu mehr schnelligkeit beim löschen bewegen kann?

@echo off 
:delete
set Anhalt=n
cls
echo.
echo.    
echo  ***************************************************************************
echo  *                                                                         *
echo  *      Batchdatei zum L”schen der Datei auf den Servern               *
echo  *                                                                         *
echo  *      Copy und Paste wird in dieser Version untersttzt                  *
echo  *                                                                         *
echo  *      Sonderzeichen (: - . Blank) werden erkannt und entfernt            *
echo  *                                                                         *
echo  *      ACHTUNG: Die Dateien werden sofort kommentarlos gel”scht!          *
echo  *                                                                         *
echo  ***************************************************************************
echo. 
echo. 
set /p Var2="      Welche Datei soll gel”scht werden?" 
set Var2=%Var2::=%
set Var2=%Var2: =%
set Var2=%Var2:.=%
set Var2=%Var2:-=%
set Var=%Var2:~-8%
Echo Bitte warten - Datei wird geloescht!
echo J|del "\\Server1\Pfad\Datei"
echo J|del "\\ Server2\Pfad\Datei"
echo J|del "\\ Server3\Pfad\Datei"
echo J|del "\\ Server4\Pfad\Datei"
echo J|del "\\ Server5\Pfad\Datei"
echo J|del "\\ Server6\Pfad\Datei"
echo J|del "\\ Server7\Pfad\Datei"
echo J|del "\\ Server8\Pfad\Datei"
echo J|del "\\ Server9\Pfad\Datei"
echo J|del "\\ Server10\Pfad\Datei"
echo J|del "\\ Server11\Pfad\Datei"
echo J|del "\\ Server12\Pfad\Datei"
echo J|del "\\ Server13\Pfad\Datei"
echo J|del "\\ Server14\Pfad\Datei"
echo J|del "\\ Server15\Pfad\Datei"
echo J|del "\\ Server16\Pfad\Datei"
echo J|del "\\ Server17\Pfad\Datei"
echo J|del "\\ Server18\Pfad\Datei"
echo J|del "\\ Server19\Pfad\Datei"
echo J|del "\\ Server20\Pfad\Datei"
echo J|del "\\ Server21\Pfad\Datei"
echo J|del "\\ Server22\Pfad\Datei"
echo J|del "\\ Server23\Pfad\Datei"
echo J|del "\\ Server24\Pfad\Datei"
echo J|del "\\ Server25\Pfad\Datei"
echo J|del "\\ Server26\Pfad\Datei"
echo J|del "\\ Server27\Pfad\Datei"
echo J|del "\\ Server28\Pfad\Datei"
echo J|del "\\ Server29\Pfad\Datei"
echo J|del "\\ Server30\Pfad\Datei"
echo J|del "\\ Server31\Pfad\Datei"
echo J|del "\\ Server32\Pfad\Datei"
echo J|del "\\ Server33\Pfad\Datei"
echo J|del "\\ Server34\Pfad\Datei"
echo J|del "\\ Server35\Pfad\Datei"
echo J|del "\\ Server36\Pfad\Datei"
echo J|del "\\ Server37\Pfad\Datei"
echo J|del "\\ Server38\Pfad\Datei"
echo J|del "\\ Server39\Pfad\Datei"
echo J|del "\\ Server40\Pfad\Datei"
echo J|del "\\ Server41\Pfad\Datei"
echo L”schung beendet.
set /p Anhalt=Enter zum beenden; j um eine weitere Datei zu l”schen?
if /I %Anhalt%==j goto :delete 
exit


Danke schonmal an die Batch-Spezies.

Lg Grapper

Content-ID: 185096

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

bastla
bastla 16.05.2012 um 16:02:59 Uhr
Goto Top
Hallo Grapper!
Hi, kann mir vll einer von euch sagen, wie ich diese Batch zu mehr schnelligkeit beim löschen bewegen kann?
Indem Du nur einen Löschbefehl gibst? face-wink

Da ja vermutlich eher eine Datei namens %var% gelöscht werden soll, vielleicht ja so:
del /f /q "\\Server\Pfad\%var%"
Grüße
bastla
Pago159
Pago159 16.05.2012 um 16:08:26 Uhr
Goto Top
Hallo Bastla,

das wäre natürlich etwas zu einfach gewesen ;)

Es ist wirklich jedesmal nur eine Datei, welche immer im selben Pfad liegt, allerdings auf verschiedenen Servern.
Diese Batch zeigt auf wieviele Server zugegriffen werden muss um die Datei zu löschen.

Die zwei Attribute /F und /q werden bei mir nicht benötigt.
Lg Grapper
bastla
bastla 16.05.2012 um 16:16:19 Uhr
Goto Top
Hallo Grapper!
Die zwei Attribute /F und /q werden bei mir nicht benötigt.
Dann aber "echo j|" noch weniger ... face-wink
Diese Batch zeigt auf wieviele Server zugegriffen werden muss um die Datei zu löschen.
Mit einer Schleife der Art
for %%i in (Server1 Server2 Server3 ... Server41) do del "\\%%i\Pfad\%var%"
dürfte das eigentlich auch nicht schneller gehen ...

Grüße
bastla

[Edit] Sollte eigentlich immer schon "\\%%i..." heißen face-wink [/Edit]
Pago159
Pago159 16.05.2012 um 16:39:27 Uhr
Goto Top
Hi Bastla,

das hört sich schonmal super an, kannst du mir mal eben noch sagen, wie ich die Datei Testen kann, ohne wirklich eine Datei zu löschen?

Sehe ich das in deinem ausschnitt richtig, dass ich keine \\ bei den Servern eintragen muss?

Lg GRapper
Jochem
Jochem 16.05.2012 um 16:44:57 Uhr
Goto Top
Moin grapper, moin bastla,

also ich bin der meinung, daß der Codeschnipsel

for %%i in (Server1 Server2 Server3 ... Server41) do del "\\Server\Pfad\%var%"  

so nicht funktionieren kann, weil m.M.n. auch in der del-Schleife die server1 bis server42 erscheinen müßten.

Wie wäre es denn, wenn &grapper Du die Servernamen in eine Datei schreibst und per f"or /f"-schleife diese Datei abarbeiten läßt, etwa so:

<coxde>
for /f %%i in (servers.txt) do echo \\%%i\pfad\datei
for /f %%i in (servers.txt) do del "\\%%i\pfad\datei"
pause


Gruß J face-smile chem

Edit: da war er schneller.
Skyemugen
Skyemugen 16.05.2012 um 16:45:18 Uhr
Goto Top
Aloha,

wie testet man ...

do echo del

klingt logisch oder?

greetz André

P.S: Sollte da nicht irgendwo die Laufvariable verarbeitet werden?

edit: ah bastla hat's eben editiert
bastla
bastla 16.05.2012 um 16:46:21 Uhr
Goto Top
Hallo Grapper!
kannst du mir mal eben noch sagen, wie ich die Datei Testen kann, ohne wirklich eine Datei zu löschen?
Die Schleife kannst Du testen, indem Du vor "del" noch ein "echo" platzierst ...
Sehe ich das in deinem ausschnitt richtig, dass ich keine \\ bei den Servern eintragen muss?
Die werden einfach beim (inzwischen richtigen face-wink) Zusammenbauen des Pfades eingesetzt ...

Grüße
bastla

[Edit] @skye & Jochem: Danke face-smile [/Edit]
Pago159
Pago159 16.05.2012 um 17:03:47 Uhr
Goto Top
Danke für eure Hilfe klappt super, vorallem wesentlich schneller ;)

Lg Grapper
Pago159
Pago159 18.05.2012 um 13:47:22 Uhr
Goto Top
Ich habe zwar schon Gelöst markiert,

allerdings musste ich feststellen, dass sich bei der Löschgeschwindigkeit leider nicht´s getan hat.

Gibt es evt. noch eine möglichkeit die Dateien gleichzeitig und nicht nacheinander zu löschen?

Würde mich auch auf neue wege einlassen.

Lg Grapper
bastla
bastla 18.05.2012 um 14:15:28 Uhr
Goto Top
Hallo Grapper!
allerdings musste ich feststellen, dass sich bei der Löschgeschwindigkeit leider nicht´s getan hat.
... was auch nicht zu erwarten war ...

Du könntest mehrere Batches verwenden und aus dem Hauptbatch per "start" und mit Übergabe des Dateinamens als Parameter aufrufen ...

Grüße
bastla
Pago159
Pago159 18.05.2012 um 14:43:19 Uhr
Goto Top
Hallo Bastla,
also wenn ich das jetzt richtig verstanden habe dann quasi nach diesem Schema:

start /B del "\\ Server14\Pfad\Datei"   
start /B del "\\ Server15\Pfad\Datei"   
start /B del "\\ Server16\Pfad\Datei"   
start /B del "\\ Server17\Pfad\Datei"  

</code

oder doch eher:



start /I /MIN del "\\Server14\Pfad\Datei"  
start /I /MIN del "\\Server15\Pfad\Datei"  
start /I /MIN del "\\Server16\Pfad\Datei"  

Lg Grapper
bastla
bastla 18.05.2012 um 14:49:03 Uhr
Goto Top
Hallo Grapper!

Die Schalter für "start" nach Bedarf / Wunsch - aber übergeben werden sollte nur der Dateiname (die Pfade sind ja angeblich gleich, könnten aber natürlich auch mitgegeben werden), und im jeweiligen Batch werden dann zB 5 Server wie bisher behandelt, also
start DelBatch1.cmd "%var%"  
start DelBatch2.cmd "%var%"  
...
"DelBatch1.cmd" würde dann etwa so aussehen:
del "\\Server1\Pfad\%~1"  
del "\\Server2\Pfad\%~1"  
del "\\Server3\Pfad\%~1"  
del "\\Server4\Pfad\%~1"  
del "\\Server5\Pfad\%~1"  
exit
und "DelBatch2.cmd" natürlich:
del "\\Server6\Pfad\%~1"  
del "\\Server7\Pfad\%~1"  
del "\\Server8\Pfad\%~1"  
del "\\Server9\Pfad\%~1"  
del "\\Server10\Pfad\%~1"  
exit
Grüße
bastla
Pago159
Pago159 18.05.2012 um 15:38:37 Uhr
Goto Top
Danke Bastla,

warst mal wieder eine super Hilfe.
Werde dann beim nächsten echten Löschvorgang mal testen, ob es sich gelohnt hat ;)

Lg GRapper