Windows benennt Dateien rekursiv um

757
Markus

Ich bin hier etwas festgefahren, ich habe eine einfache Datei erstellt, um Ordner mit einem speziellen Namen zu komprimieren. Nehmen wir an, wir suchen nach Ordnern mit dem Namen "tozip", aber der Name der gezippten Datei soll der Unterordnername + Ordnername sein. zB alle Dateien in C: / test / somefolder / 123456 / tozip / * werden der Datei "123456_tozip.7z" hinzugefügt

was ich momentan habe ist:

for /R /d /r %%i in (tozip*) do ( 7za a -tzip "%%i.7z" "%%i" -mx3 ) 

Dies fügt jedoch nicht den Namen des Ordners n-1 zum Dateinamen hinzu. Ich habe gesehen, dass ich zB den Dateinamen von %% ~ nxi oder den vollständigen Pfad extrahieren kann, aber leider nicht die Informationen, die ich brauche. Irgendwelche Ideen dazu?

0
Wo ist die zip-Datei (`.7z`): in` tozip \ `oder höher im Verzeichnisbaum? AFH vor 7 Jahren 0
Nur eine Nebenfrage: "-tzip" bedeutet, dass Sie die ZIP-Komprimierungsmethoden verwenden und nicht 7z. Ihr Archiv wird jedoch die Erweiterung .7z haben. Ist das beabsichtigt? nixda vor 7 Jahren 0
Seltsam, dass bei den beiden / R-Schaltern kein Fehler ausgegeben wird. Squashman vor 7 Jahren 0
@AFH einen Verzeichnisbaum höher Markus vor 7 Jahren 0
@Nixda Danke, das ist nicht so wichtig, aber Danke, dass du es erwähnt hast! Markus vor 7 Jahren 0
@Squasman Fehler beim Kopieren und Einfügen, sorry! ;-) Markus vor 7 Jahren 0

1 Antwort auf die Frage

1
Squashman

Sie waren so nah und haben sogar die richtige Idee, müssen aber noch einen Schritt weiter gehen. Wenn Sie das tozipVerzeichnis gefunden haben, können Sie diesen Pfad in einen anderen FORBefehl eingeben, um den übergeordneten Ordner des tozipOrdners abzurufen.

Hier ist der Code, der auf Ihrem Beispiel basiert.

@echo off for /D /R C:\test\ %%G in (tozip*) do ( FOR %%H IN ("%%G\..") DO echo %%~nxH  ) pause 
Autsch, das tut weh ... Ich wusste nicht, dass es so einfach ist, danke für deine Hilfe! Markus vor 7 Jahren 0
Ich habe versucht herauszufinden, wie man das letzte Element des Verzeichnispfads heraussucht: Das Hinzufügen von "\ .." ist eine viel klügere Lösung! AFH vor 7 Jahren 0