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, 3731 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
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 ...

VB for Applications
gelöst VB Skript für mehrere Batch Befehle (37)

Frage von freshman2017 zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (28)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (21)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (17)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...