Jump to content

FOR-Schleife über Zeichenfolge


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (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 von harrier
Geschrieben

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

 

Geschrieben

@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.

 

 

 

 

 

Geschrieben

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.

Geschrieben (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 von harrier
Geschrieben

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.)

Geschrieben

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
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...