Wie im Titel erwähnt, muss ich die Dateinamen verschiedener Bilddateien aus verschiedenen Verzeichnissen als Liste in eine einzelne Textdatei exportieren. Wie gehe ich bei einer solchen Aufgabe vor?
Zweitens: Wäre es möglich, die in der Textdatei aufgeführten Dateinamen teilweise zu entfernen? Bitte sehen Sie sich den Screenshot an:
Ich muss den Dateinamen „HS3-HTS-“ entfernen und nur die Nummer als Dateinamen belassen.
Benötige ich zum Ausführen dieser Aufgabe eine Eingabeaufforderung oder gibt es eine andere Lösung?
Ich habe einen ... gefundenVerknüpfunghier, aber es wurde nicht erklärt, wie man nur Bilddateien auswählt. Jede Hilfe wird geschätzt. Vielen Dank im Voraus.
Antwort1
Angenommen, Sie möchten die Dateierweiterungen jpg, jpeg, gif und png und angenommen, Sie möchten die Dateinamen aus dem aktuellen Verzeichnis abrufen:
powershell "dir *.jpg,*.jpeg,*.gif,*.png | ForEach-Object {echo ($_.BaseName -replace 'HS3-HTS-', '')}" > Output.txt
Wenn eine rekursive Suche erforderlich ist, um Dateien in mehreren Verzeichnissen mit einem einzigen Befehl zu finden, funktioniert möglicherweise Folgendes (ersetzen Sie einfach „C:\“ durch das gewünschte Laufwerk oder Basisverzeichnis):
powershell "Get-ChildItem -Path C:\ -Recurse -Include *.jpg,*.jpeg,*.gif,*.png | ForEach-Object {echo ($_.BaseName -replace 'HS3-HTS-', '')}" > Output.txt
Beachten Sie, dass beide der obigen Beispiele die Liste in eine Datei namens "Output.txt" im aktuellen Verzeichnis ablegen.Aktuelles Verzeichnis, ich meine das Verzeichnis, das über die Eingabeaufforderung angezeigt wird. Wenn Sie die Ausgabe direkt in der Eingabeaufforderung sehen möchten, ohne eine Datei öffnen zu müssen, lassen Sie > Output.txt
in den obigen Befehlen einfach das letzte weg. Beachten Sie auch, dass die obigen Befehle, obwohl sie auf PowerShell basieren, so formuliert wurden, dass sie in der normalen Eingabeaufforderung ausgeführt werden. Der Teil „powershell“ weist PowerShell an, den Befehl mit PowerShell zu analysieren.