BATCH - Frage

Pascal, Basic und andere nicht aufgelistete
Antworten
Shrax
Beiträge: 87
Registriert: Sa Dez 27, 2008 8:08 pm

BATCH - Frage

Beitrag von Shrax » Mo Mär 30, 2009 5:01 pm

Hi.
Es gibt ein paar viren die dateien namens autorun.inf anlegen.
autorun.inf dateien sind eigentlich unnötig. Sie starten von festplatten oder usb sticks automatisch beim aktivieren bzw. einstecken.

Ich würde gerne ein Batch script schreiben das auf allen USB STICKS partitionen und allen anderen festplatten die datei autorun.inf löscht.

eh so wie:
CD C:\
del /F /S /Q autorun.inf

Klappt. Doch wie bringe ich es dazu auch die anderen Partitonen zu machen?
Habe gehört das geht mit einer for schleife...
weis jemand wie ich das anstellen könnte?

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: BATCH - Frage

Beitrag von fat-lobyte » Mo Mär 30, 2009 5:15 pm

Batch ist eine der schlimsten Programmierirgendetwas (nicht Programmiersprache!) die es gibt. Überleg dir mal das ding einer anderen Sprache zu schreiben. Ansonsten hilft dir das vielleicht weiter:
http://www.robvanderwoude.com/for.php
http://de.wikibooks.org/wiki/Batch-Prog ... s-Schleife
Haters gonna hate, potatoes gonna potate.

Shrax
Beiträge: 87
Registriert: Sa Dez 27, 2008 8:08 pm

Re: BATCH - Frage

Beitrag von Shrax » Mo Mär 30, 2009 5:29 pm

Das weis ich selber dass batch keine programmiersprache ist (ähnelt einer scriptsprache im sinne von vbs) aber ich will das dennnoch damit schreiben.

Wenn du mir aber n code für ne Datei in C geben kannst die genau den selben effeckt wie ich oben beschreibe hat wäre ich auch sehr glücklich!

Aber wenn nicht muss ich mich hier noch durchkämpfen. Hab C lernen bis hinter meinen Quali geschoben.
:loop
for %%i in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
if exist %%i:\NUL call:defrag %%i
)
echo.
echo pause...
ping localhost -n 10 >NUL
goto loop
Werde draus nicht schlau. Schon gar ich den sinn von %%i nicht verstehe. Sollte das sowas heißen wie; exersiert %%1 in cde..... dann tue das if exist... ?

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: BATCH - Frage

Beitrag von +Fuss+ » Mo Mär 30, 2009 5:40 pm

Code: Alles auswählen

:loop
    for %%i in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
        if exist %%i:\NUL call:defrag %%i
    )
    echo.
    echo pause...
    ping localhost -n 10 >NUL
goto loop
wenn ich sowas schon sehe: Eine Funktion die aus sich selber wieder aufgerufen wird -> eine Endlosschleife
wenn ??? %%i ??? in den ? Laufwerken ? c d e f g h i j k l m n o p q r s t u v w x y z gefunden wird.
danach startet er defrag

wenn das nicht der Fall ist wird die schleife aus sich selber wieder aufgerufen bzw. wenn ich das richtig sehe läuft die schleife auch weiter wenn %%i gefunden wird (da steht ja call:defrag und nicht goto:defrag)

Hoffe ich konnte dir ein kleines bisschen weiterhelfen.

MfG Fuss

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: BATCH - Frage

Beitrag von cloidnerux » Mo Mär 30, 2009 5:43 pm

Ich würde dir raten, das ganze mit AutoIT zu schrieben, da hst du wenigen eine oprdentliche skriptsprache, kannst noch ein wenig GUI hinzufügen und als *.exe speichern
Redundanz macht wiederholen unnötig.
quod erat expectandum

Shrax
Beiträge: 87
Registriert: Sa Dez 27, 2008 8:08 pm

Re: BATCH - Frage

Beitrag von Shrax » Mo Mär 30, 2009 5:45 pm

Dazu müsste ich mich mit AutoIT beschäftigen. Ich will doch nur dieses kleine Script. Wenn ich mein QUali hab kann ich mich auch mit anderen beschäftigen aber solange muss ich erstmal schnell so ein script bekommen.


Ich komm immernoch nich klar...


:loop
for autorun.inf in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
if exist autorun.inf:\NUL del /F /S /Q autorun.inf
)
goto loop

geht nicht.

Shrax
Beiträge: 87
Registriert: Sa Dez 27, 2008 8:08 pm

Re: BATCH - Frage

Beitrag von Shrax » Mo Mär 30, 2009 5:57 pm

Code: Alles auswählen

 for %%c in (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) do (
 	if EXIST %%c:\ (
 		del /F /S %%c:\autorun.inf
 	)
 )
Habs geschafft danke!

Antworten