Wie kann ich über jede Datei in einem Verzeichnis iterieren, indem ich eine for
Schleife?
Und wie kann ich feststellen, ob es sich bei einem bestimmten Eintrag um ein Verzeichnis oder nur um eine Datei handelt?
Wie kann ich über jede Datei in einem Verzeichnis iterieren, indem ich eine for
Schleife?
Und wie kann ich feststellen, ob es sich bei einem bestimmten Eintrag um ein Verzeichnis oder nur um eine Datei handelt?
Iterieren Sie durch...
for %f in (.\*) do @echo %f
for /D %s in (.\*) do @echo %s
for /R %f in (.\*) do @echo %f
for /R /D %s in (.\*) do @echo %s
Leider habe ich keine Möglichkeit gefunden, gleichzeitig über Dateien und Unterverzeichnisse zu iterieren.
Verwenden Sie einfach cygwin mit seiner Bash für viel mehr Funktionalität.
Davon abgesehen: Ist Ihnen aufgefallen, dass die Buildin-Hilfe von MS Windows eine hervorragende Quelle für Beschreibungen der Befehlszeilensyntax von cmd ist?
Schauen Sie auch hier nach: http://technet.microsoft.com/en-us/library/bb490890.aspx
Um jede Datei zu durchlaufen, kann eine for-Schleife verwendet werden:
for %%f in (directory\path\*) do ( something_here )
In meinem Fall wollte ich auch den Inhalt der Datei, den Namen usw.
Dies führte zu einigen Problemen, und ich dachte, mein Anwendungsfall könnte helfen. Hier ist eine Schleife, die Informationen aus jeder '.txt'-Datei in einem Verzeichnis liest und Ihnen erlaubt, etwas damit zu tun (setx zum Beispiel).
@ECHO OFF
setlocal enabledelayedexpansion
for %%f in (directory\path\*.txt) do (
set /p val=<%%f
echo "fullname: %%f"
echo "name: %%~nf"
echo "contents: !val!"
)
*Einschränkung: val<=%%f liefert nur die erste Zeile der Datei.
Diese for-Schleife listet alle Dateien in einem Verzeichnis auf.
pushd somedir
for /f "delims=" %%f in ('dir /b /a-d-h-s') do echo %%f
popd
"delims=" ist nützlich, um lange Dateinamen mit Leerzeichen darin anzuzeigen....
'/b" zeigt nur die Namen, nicht die Größenangaben usw. an.
Einige Dinge, die man über dir's /a Argument wissen sollte.
Wenn Sie dies auf der Kommandozeile verwenden, entfernen Sie ein "%".
Ich hoffe, das hilft.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.