harrier 0 Geschrieben 14. Februar 2013 Melden Geschrieben 14. Februar 2013 (bearbeitet) Hallo Leute, ich habe frisch mit Windows-Scripting angefangen und hab Probleme mit dem Syntax der FOR-Schleife. Mein Script soll mir folgende Liefern: Textdatei ausgeben in der alle Laufwerke des Systems aufgelistet sind. Hab folgenden Ansatz: @echo off FOR %%a IN (A B 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 %a:\ echo %a >> Laufwerksliste.txt Leider bekomme ich immer einen Syntaxfehler. Wäre für Hilfe dankbar. bearbeitet 14. Februar 2013 von harrier
Esta 121 Geschrieben 15. Februar 2013 Melden Geschrieben 15. Februar 2013 Hallo Harrier, 3 Fehler sind mir aufgefallen und so sollte es lauffähig sein: @echo off FOR %%a IN (A B 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 %%a:\nul echo %%a >> Laufwerksliste.txt
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Geschrieben 15. Februar 2013 Hy Esta, danke für deine Tipp leider bekomme ich immer noch eine Syntaxfehlermeldung.
lefg 276 Geschrieben 15. Februar 2013 Melden Geschrieben 15. Februar 2013 Hallo, wurde die Syntax der FOR-Schleife schon einmal vollständig und eingehend studiert? So kann das nicht funktionieren, weder von der Syntax her noch vom Ziel der Ausgabe der vorhandenen Laufwerke.
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Geschrieben 15. Februar 2013 @lefg Die manuelle Ausführung des folgenden Befehls in CMD bringt mit das gewünschte Ergebnis: for %a IN (A B 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 %a:\ echo %a >> test.txt Aus diesem Grund habe ich den Syntax der For-Schleife so übernommen. Ich habe mir die Help-Page der For-Schleife in Windows angeschaut, war aber sicher, dass meine Syntax so passt.
Cybquest 36 Geschrieben 15. Februar 2013 Melden Geschrieben 15. Februar 2013 Habs grad mal nachgestellt. Dein erster Ansatz funktioniert schon. Muss halt kpl. in einer Zeile stehen! FOR %%a IN (A B 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 %a:\ echo %a >> Laufwerksliste.txt oder nach dem DO der Rest in Klammer FOR %%a IN (A B 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 %a:\ echo %a >> Laufwerksliste.txt ) Aber wenn Du gerade erst frisch mit Windows-Scripting anfängst... nimm doch dann lieber gleich Powershell.
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Geschrieben 15. Februar 2013 @Cyberguest: danke für den Tipp allerding hab ich nun folgendes in meinem Textfile nur a drin stehen obwohl A als Laufwerk nicht existiert.
Esta 121 Geschrieben 15. Februar 2013 Melden Geschrieben 15. Februar 2013 Achso ja, ich hatte es über eine Batchdatei gemacht und da schreibt man %%a und bei manueller Eingabe schreibt man %a. Und natürlich alles in eine Zeile.
Cybquest 36 Geschrieben 15. Februar 2013 Melden Geschrieben 15. Februar 2013 ...dann hast beim "echo %a" das % vergessen ;) Oder steht nur ein großes A drin? Wie gesagt: Bei mir läufts kpl. und bringt alle vorhandenen Laufwerke (auf W7 übrigens;)
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Geschrieben 15. Februar 2013 (bearbeitet) Hier der Inhalt meiner Batch-Datei (alles in einer Zeile): for %%a in (A B 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 %a:\ echo %a >> Laufwerksliste.txt Ich bekomme damit lauter "a" in meinem Textfile. (Das Laufwerk a: existiert nicht) bearbeitet 15. Februar 2013 von harrier
Esta 121 Geschrieben 15. Februar 2013 Melden Geschrieben 15. Februar 2013 (bearbeitet) Auch die letzten beiden %a müssen so %%a aussehen. bearbeitet 15. Februar 2013 von Esta
harrier 0 Geschrieben 22. Februar 2013 Autor Melden Geschrieben 22. Februar 2013 Ich habe vor meine Schleife etwas zu erweitern. Momentan gibt sie mit auch die CD-ROM Laufwerksbuchstaben mit aus. Ist es möglich die CD-ROM Laufwerksbuchstaben nicht mit ausgeben zu lassen? (Laufwerksbuchstaben für CD-ROM sind je nach System verschieden.)
Dukel 468 Geschrieben 22. Februar 2013 Melden Geschrieben 22. Februar 2013 Benutze Powershell. Dann hast du die ganzen Probleme nicht. Get-PSDrive -PSProvider FileSystem | ? { $_.Free } | Select-Object Root Alternativ für nur den Laufwerksbuchstaben (also C statt C:\): Get-PSDrive -PSProvider FileSystem | ? { $_.Free } | Select-Object Name
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden