Erstellen Sie mehrere Archive aus einem Verzeichnis, ohne dass der Stammverzeichnisname zum Archiv hinzugefügt wird

Erstellen Sie mehrere Archive aus einem Verzeichnis, ohne dass der Stammverzeichnisname zum Archiv hinzugefügt wird

Diese Stapelverarbeitung funktioniert gut, um mehrere Archive in einem Ordner zu erstellen, fügt aber den Stammordner zum Archiv hinzu. Ich möchte, dass nur die Dateien im Stammordner hinzugefügt werden. Dies ist der Code, den ich habe:

for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X"

Antwort1

Sie brauchen nur einfürSchleife, indem Sie den /dParameter weglassen, und es funktioniert genauso, wie Sie es beschreiben, wobei die ZIP-Archivdatei(en) erstellt werden und der übergeordnete Ordner nicht enthalten ist.

Befehle

Notiz: Dadurch wird für jede Datei im Verzeichnis eine ZIP-Archivdatei hinzugefügt, die nur diese Datei enthält.

for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%~X.zip" "%%~X"

Notiz: Dadurch werden alle Dateien nur im Verzeichnis zu der von Ihnen angegebenen ZIP-Datei hinzugefügt.

for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "<MyZipFileName>.zip" "%%~X"

Befehl „Schleife verschachteln“

Notiz: Dadurch werden nur Dateien aus den Verzeichnissen unterhalb des Verzeichnisses, in dem sich die Batchdatei befindet, zu einer ZIP-Datei hinzugefügt, die dem Namen des Verzeichnisses entspricht.

@ECHO ON

FOR /F "TOKENS=*" %%A in ('DIR /S /B /AD "*"') DO (
  FOR %%B IN (*) DO (
      "C:\Program Files\7-Zip\7z.exe" a "%%~fA.zip" "%%~fA\*")
)
EXIT

Weitere Ressourcen

  • Für /F
  • FOR /?

        tokens=x,y,m-n  - specifies which tokens from each line are to
                          be passed to the for body for each iteration.
                          This will cause additional variable names to
                          be allocated.  The m-n form is a range,
                          specifying the mth through the nth tokens.  If
                          the last character in the tokens= string is an
                          asterisk, then an additional variable is
                          allocated and receives the remaining text on
                          the line after the last token parsed.
    
  • Dir
  • Für
  • ein (Hinzufügen)-Befehl

verwandte Informationen