Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batchprogramm zur Komprimierung von Unterverzeichnissen (Windows XP) - Skriptanpassung

Frage Entwicklung Batch & Shell

Mitglied: TheJoker2305

TheJoker2305 (Level 1) - Jetzt verbinden

30.07.2010 um 13:33 Uhr, 4132 Aufrufe, 5 Kommentare

Hallo,

habe zwar schon die Suche bemüht, jedoch kein Beispiel gefunden, welches genau passt.

In einem Verzeichnis

C:\Kunden\

existiere 4 weitere Verzeichnisse

Kunde_1
Kunde_2
Kunde_3
Kunde_4

In diesen Verzeichnissen befindet sich eine unterschiedliche Anzahl an Unterverzeichnissen, deren Namen nicht genau bekannt sind.

Beispiels weise

C:\Kunden\Kunde_1\1_Rechnungen_1
C:\Kunden\Kunde_1\1_Rechnungen_2
C:\Kunden\Kunde_1\1_Rechnungen_3

und

C:\Kunden\Kunde_2\2_Rechnungen_1
C:\Kunden\Kunde_2\2_Rechnungen_2
C:\Kunden\Kunde_2\2_Rechnungen_3

In den Rechnungsordnern sind meist mehrere 1.000 Dateien enthalten. Meist 4.200.

Nun müssen diese Rechnungsverzeichnisse als passwortgeschützte Zip-Dateien archiert werden.

Die Namen der Ziparchive sollen die Rechnungsordnernamen tragen
also für das Verzeichnis: C:\Kunden\Kunde_2\2_Rechnungen_1 --> 2_Rechnungen_1.zip

Dies wir mit folgendem Skript erreicht (%% da es sich um ein Batch-Skript handelt)


For /f "Delims=\ tokens=2-5" %%a in ('dir /b /s /a:d c:\Dateien\.') do @if "%%a%%b" neq "" if "%%c" neq "" if "%%d" equ "" 7z.exe a -pGEHEIM -mx0 c:\Dateien_gezippt\%%c.zip %%~da\%%a\%%b\ >>c:\Dateien_gezippt\log-%%c.txt


Es funktioniert soweit, jedoch werden beim Kunden2 die Rechnungen 1+2 in eine zip Datei gelegt. Diese Datei wird dann immer und immer wieder erzeugt.

In anderen Verzeichnissen funktioniert es.

Die Verzeichnisse sind auch nicht mit mehr Dateien gefüllt und haben auch keine andere Berechtigung.

Wo ist der Denkfehler ?

Fehler im Skript?

Danke vorab für eure Hilfe

TheJoker2305
Mitglied: 60730
30.07.2010 um 13:53 Uhr
Moin,

füge doch bitte mal ein paar "Outputs" - also ohne führendes @echo off oder @echo off
gerne hinter > ein - denn dann muß man das nicht unbedingt nachstellen, sondern kannst evtl. schon bei dir sehen.

echo on
for ...
usw..

Denn warum du die tokens und neqs benutzt ist mir so nicht klar.
(und auch nicht, obs daran liegt.)

Gruß
Bitte warten ..
Mitglied: TheJoker2305
30.07.2010 um 14:27 Uhr
Habe den Fehler weiter eingrenzen können.

Wenn in einem Kunden-Ordner mehrere Rechnungsverzeichnisse existieren, dann werden diese alle in eine Zip Datei gepackt.

Von diesen Zip Dateien habe ich dann so viele, wie Rechnungsordner im Kundenordner existieren.
Auch haben diese Dateien dann den gleichen Inhalt (also die gleichen Dateien).

Mir scheint dann liegt der Fehler bei den tokens und/oder bei den If -Abfragen...
Bitte warten ..
Mitglied: 60730
30.07.2010 um 14:38 Uhr
Moin,

denk dran heute ist nicht nur Freitag, sondern auch Sysadminday und wohl der wärmste Tag der Woche.

  • kunde_1 kunde_2 sind phantasienamen, oder entsprechen die dem Muster abcdexyzusw_ziffer/zahl?

demo

>for /f "Tokens=4,* Delims=\" %i in ('"dir /B /s /AD C:\script\kunde"') do echo Kunde=%i°Ordner=%j

Damit kannst du mit %i den Kunden und mit %j den Orndernamen auswerten.
Hast du den Ordner nicht in c:\unterordner\UNterordner\Ordner\Kunde - mußt du die menge deiner "\" als Token angeben.

% für Demo %% für Batch

Gruß
Bitte warten ..
Mitglied: Biber
30.07.2010 um 14:43 Uhr
Moin Teekasper,

und wenn du statt %%~da\%%a\%%b\ mal versuchst c:\%%a\%%b\%%c\?

Ich verstehe nicht, warum du T-Mos Vorschläge nicht wenigstens mal wohlwollend prüfst.

Wenn ich einen proof of concept deiner Zeile am CMD-Prompt mache, kommt rum/raus/rüber
[Das führende ">" NICHT mit eingeben; ist Teil meines CMD-Prompts]
>for /f "delims=\ tokens=2-5" %a in ("C:\Kunden\Kunde_2\2_Rechnungen_1") do @echo "%a%b" c[%c] d[d] %~da\%a\%b\ 
"KundenKunde_2" c[2_Rechnungen_1] d[d] D:\Kunden\Kunde_2\
wobei doch zumindest sofort ersichtlich wird:

  • die Anweisung "Tokens=2-5" schliesst Token 1 logischerweise aus->das ist das Laufwerk->also ist "%~da" ein Zufallswert.

  • die Anweisung "Tokens=2-5" schlisst Token 5 == %e ein. Der wird nie nicht gebraucht

  • im letzten Teil (="%~da\%a\%b\") steht aufgelöst dann "D:\Kunden\Kunde_2\" und nicht "c:\Kunden\Kunde_2\2_Rechnungen_1"

Grüße
Biber
Bitte warten ..
Mitglied: TheJoker2305
30.07.2010 um 18:29 Uhr
So funktionierts:

01.
For /f "Delims=\ tokens=1-5" %%a in ('dir /b /s /a:d c:\Kunden\.') do @if "%%a%%b%%c" neq "" if "%%d" neq "" 7z.exe a -pGEHEIM -mx0 c:\Kunden_gezippt\%%d.zip %%a\%%b\%%c\%%d >>c:\Kunden_gezippt\log-%%d.txt
Wobei %%d für den Rechnungsordner steht.


Velen Dank an alle beteiligen
Bitte warten ..
Ähnliche Inhalte
Festplatten, SSD, Raid
Storage 3par mit Windows Komprimierung?
Frage von 14634Festplatten, SSD, Raid1 Kommentar

Hallo zusammen, wir haben aktuell Storageseitig eine EVA und migrieren gerade auf eine 3par "all Flash", die 3par kann ...

Windows 10
Komprimierung von Windows 10: Erfahrungsberichte
gelöst Frage von honeybeeWindows 105 Kommentare

Hallo, hat jemand schon mal versucht, Windows zu komprimieren? Quelle: Wenn ja, welche Erfahrungen wurden gemacht? Verhält sich das ...

Hyper-V
VHD trotz Komprimierung unverändert
gelöst Frage von Leo2014Hyper-V5 Kommentare

Hallo, ich betreibe einen Windows 2012 R2 Server, auf dem 3 HyperV-Maschinen laufen. Nun geht mein Festplattenspeicher zur Neige ...

Papierkorb
Mein Top Tool zur Komprimierung von Bildern
Tipp von 134941Papierkorb14 Kommentare

Die Geschwindigkeit einer Website flott zu halten ist unglaublich wichtig. In meiner täglichen Arbeit stelle ich immer wieder fest, ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 17 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 19 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.