Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Batch-Befehl einzeln in allen Unterverzeichnissen anwenden

Frage Entwicklung Batch & Shell

Mitglied: blue0711

blue0711 (Level 2) - Jetzt verbinden

27.06.2013 um 16:27 Uhr, 3779 Aufrufe, 4 Kommentare

Hallo,

ich bleibe gerade etwas mit meinen rudimentären Batch-Kenntnissen hängen.

Ziel: Ich möchte einen Batch-Befehl in allen Unterverzeichnissen eines Laufwerks ausführen.
Genauer: Es sollen alle Dateien des Typs *.typ in ihrem jeweiligen Unterverzeichnis in eine ZIP-Datei umgewandelt werden.

Das Zippen ist kein Thema, das erledigt mir das Befehlszeilenkommando von winrar.

Nur, wie ich das in jedem Unterverzeichnis jeweils ausführen lasse, ist mir nicht klar.
Ich weiß zwar, dass das mit einer FOR-Schleife und den delimeter-Parametern geht, aber dabei steigt mein Verständnis für Batch-Befehle aus.

(Alternativ wäre natürlich der Link auf eine umfassende, verständliche Erklärung der Parameter und Optionen von FOR - für Batch-Dummies bitte )

Vielen Dank schon im Voraus für jede konstruktive Antwort
Gruß
Kai
Mitglied: Biber
27.06.2013 um 16:54 Uhr
Moin blue0711,

für den genannten Plan brauchst du nur eine FOR-Anweisung vom CMD-Prompt abschicken, dierekursiv durch dieUnterverzeichnisse wacket.

Zum verständnis einfach die Hilfe zu FOR (FOR /?) aufrufen und bei "FOR /R" nachlesen.

01.
for /r "D:\IrgendWo" %i in (*.pdf) do @SchenkMirEinFotoVon "%i""
--> würde auf alle *.pdf-Dateien in D:\irgendwo den Befehl SchenkMirEinFotoVon anwenden.

01.
for /r "D:\IrgendWoAnders" %i in (*.typ) do @echo D:\ein\pfadzuWinrar\winrar -parameter "%i""
--> würde auf alle *.typ-Dateien in D:\irgendwoAnders den Befehl "@echo D:\ein\pfadzuWinrar\winrar -parameter " bezogen auf Datei %i anwenden.

Grüße
Biber
Bitte warten ..
Mitglied: blue0711
27.06.2013 um 19:50 Uhr
Super, danke. Genau, was ich erreichen wollte.

Zum Hintergrund: Wir haben Dateien, die sehr groß werden, sich aber auf 25 bis 50% komprimieren lassen, auf einer Storage liegen, die leider keine NTFS-Komprimierung unterstützt.
Die Dateien werden aus Archivierungsgründen zwar benötigt, jedoch selten aufgerufen, wenn sie ein gewisses Alter erreicht haben.

Daher sollen regelmäßig alle Dateien dieses Typs, die älter als ein Jahr sind, in eine *.typ.zip-Datei gewandelt werden, die im selben Ordner wie die Ursprungsdatei liegt und auch noch deren Datum hat.

Klingt banal, spart in unserem Fall allerdings etwa 1 TB Storage ein, lohnt sich also echt.

Dieser Befehl erreicht genau das gewünschte:
01.
FOR /R "H:\" %i in (*.typ) do @echo P:\winrar m -tl -to365d -y "%i.zip" "%i"
Vielen Dank und Gruß
Kai
Bitte warten ..
Mitglied: bastla
27.06.2013 um 19:57 Uhr
Hallo blue0711!

Vielleicht schaust Du trotzdem noch bei Friemlers Tutorial zur FOR-Schleife vorbei ...

Grüße
bastla
Bitte warten ..
Mitglied: blue0711
27.06.2013 um 20:04 Uhr
Mach ich, danke.
Hab ich bisher übersehen.

Gruß
Kai
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batchdatei auch in den Unterverzeichnissen anwenden (7)

Frage von joejoesto zum Thema Batch & Shell ...

Batch & Shell
Batch - alle unterverzeichnisse miteinbeziehen (5)

Frage von mksadm zum Thema Batch & Shell ...

Batch & Shell
gelöst Mehrzeiligen Powershell-Befehl mit Batch ausführen (3)

Frage von 133202 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

(1)

Information von BassFishFox zum Thema Datenschutz ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Proxy Server Settings Cloud + EWS (17)

Frage von SomebodyToLove zum Thema Exchange Server ...

Windows Server
PDF Editor für den Einsatz auf Terminal Servern (16)

Frage von kwame501 zum Thema Windows Server ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Windows Server
S MIME Zertifikat aus AD in Outlook einbinden (12)

Frage von chb1982 zum Thema Windows Server ...