harrier 0 Geschrieben 14. Februar 2013 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Esta 114 Geschrieben 15. Februar 2013 Melden Teilen 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 Zitieren Link zu diesem Kommentar
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Teilen Geschrieben 15. Februar 2013 Hy Esta, danke für deine Tipp leider bekomme ich immer noch eine Syntaxfehlermeldung. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 15. Februar 2013 Melden Teilen 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. Zitieren Link zu diesem Kommentar
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Teilen 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. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 15. Februar 2013 Melden Teilen 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. Zitieren Link zu diesem Kommentar
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Teilen 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. Zitieren Link zu diesem Kommentar
Esta 114 Geschrieben 15. Februar 2013 Melden Teilen 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. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 15. Februar 2013 Melden Teilen 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;) Zitieren Link zu diesem Kommentar
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Teilen 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 Zitieren Link zu diesem Kommentar
Esta 114 Geschrieben 15. Februar 2013 Melden Teilen Geschrieben 15. Februar 2013 (bearbeitet) Auch die letzten beiden %a müssen so %%a aussehen. bearbeitet 15. Februar 2013 von Esta Zitieren Link zu diesem Kommentar
harrier 0 Geschrieben 15. Februar 2013 Autor Melden Teilen Geschrieben 15. Februar 2013 Danke! Zitieren Link zu diesem Kommentar
harrier 0 Geschrieben 22. Februar 2013 Autor Melden Teilen 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.) Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 22. Februar 2013 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.