Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 3688 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
Windows 10
gelöst Fenster Mini- Maximieren per Batch-Befehl (2)

Frage von knitti zum Thema Windows 10 ...

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

Frage von 133202 zum Thema Batch & Shell ...

Windows Netzwerk
gelöst Copy Befehl in einer batch funktioniert nicht. (3)

Frage von Pauli-H zum Thema Windows Netzwerk ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...