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, 3508 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Programm in allen Unterverzeichnissen ausführen (8)

Frage von Rotnasenkater zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Minuszeichen in set-Befehl (3)

Frage von Schottenrock zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...