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

CMD - Batch - For-Schleife-Übergabe

Frage Entwicklung Batch & Shell

Mitglied: kallewirsch

kallewirsch (Level 1) - Jetzt verbinden

27.11.2012, aktualisiert 21:53 Uhr, 3903 Aufrufe, 2 Kommentare

Hallo Forum,

ich habe folgende Verzeichnisstruktur:
01.
D:\Ordner_A\Unterordner_A\2011\01\01 
02.
D:\Ordner_A\Unterordner_A\2011\01\02 
03.
D:\Ordner_A\Unterordner_A\2011\01\03 
04.
D:\Ordner_A\Unterordner_A\2011\01\04 
05.
... 
06.
... 
07.
D:\Ordner_A\Unterordner_A\2011\01\31 
08.
D:\Ordner_A\Unterordner_A\2011\02\01 
09.
D:\Ordner_A\Unterordner_A\2011\02\02 
10.
D:\Ordner_A\Unterordner_A\2011\02\03 
11.
D:\Ordner_A\Unterordner_A\2011\02\04 
12.
... 
13.
... 
14.
D:\Ordner_A\Unterordner_A\2011\02\28 
15.
D:\Ordner_A\Unterordner_A\2011\03\01 
16.
D:\Ordner_A\Unterordner_A\2011\03\02 
17.
D:\Ordner_A\Unterordner_A\2011\03\03 
18.
D:\Ordner_A\Unterordner_A\2011\03\04 
19.
... 
20.
... 
21.
D:\Ordner_A\Unterordner_A\2011\03\31 
22.
... 
23.
... 
24.
... 
25.
... 
26.
D:\Ordner_A\Unterordner_A\2011\12\01 
27.
D:\Ordner_A\Unterordner_A\2011\12\02 
28.
D:\Ordner_A\Unterordner_A\2011\12\03 
29.
D:\Ordner_A\Unterordner_A\2011\12\04 
30.
... 
31.
... 
32.
D:\Ordner_A\Unterordner_A\2011\12\31
Ich möchte dann im Batch folgendes erreichen:
1. Ermitteln wieviele Tagesverzeichnisse im aktuellen Monatsverzeichniss
2. Die im aktuellen Tagesverzeichniss vorhandenen Dateien solle dann alle im zugehörigen Monat zu einem Tageszip nach
der Benennenung TT.zip mit 7za.exe gepackt werden.
3. Der beim ZIP-Vorgang entstehende Errorcode muss abgeprüft werden, gleich NULL, dann alle in das ARCHIV gepackte
Dateiein löschen.
4. Beim auftretenden Monatswechsel solle dann alle Archive des Vormonats zu einem Archiv mit der Bezeichnung MM.ZIP
gepackt werden, ebenfalls den ERRORLEVEL abfragen, wenn gleich NULL, dann die in das ARCHIV gepackte Dateien (also die
Tageszips) löschen.
5. Das wars....

Ich habe den Punkt 1 mit folgender FOR-Schleife:
for /D %%m in (D:\Ordner_A\Unterordner_A\2011\*) do (for /D %%d in (%%m\*) do echo %%d)
Damit schaffe ich, sowohl, die Monats- und Tagesverzeichnisse auszugeben.

Und das wars, ich bekomme es irgendwie nicht hin....
Ich hatte eigentlich geplant, anstelle des echo %%d eine weitere for-Schleife mit dem Parameter /F und delims und tokens zu arbeiten, aber....

Nun hoffe ich auf Eure Unterstützung.

Vielen Dank Forum.
Mitglied: bastla
27.11.2012, aktualisiert um 22:21 Uhr
Hallo kallewirsch!

Versuch mal, auf dieser Grobstruktur aufzubauen:
01.
@echo off & setlocal 
02.
set "Basis=D:\Ordner_A\Unterordner_A" 
03.
set "Jahr=2011" 
04.
 
05.
for /d %%m in ("%Basis%\%Jahr%\*") do ( 
06.
    echo Beginn Monat: %%~nm 
07.
    for /d %%d in ("%%m\*") do ( 
08.
        echo Datum: %Jahr%-%%~nm-%%~nd 
09.
10.
    echo Ende Monat: %%~nm 
11.
    echo ################# 
12.
)
In der Online-Hilfe (mit "for /?") findest Du gegen Ende eine Erklärung zu "%%~nm" ...

Grüße
bastla
Bitte warten ..
Mitglied: Friemler
27.11.2012, aktualisiert um 23:06 Uhr
Hallo kallewirsch,

hier noch was zum Testen:
01.
@echo off & setlocal 
02.
 
03.
pushd "%~dp0" 
04.
 
05.
 
06.
set "BaseDir=D:\Ordner_A\Unterordner_A" 
07.
set "7Zip=.\7za.exe" 
08.
 
09.
set "VBScript1=%TEMP%\GetCurDate.vbs" 
10.
set "VBScript2=%TEMP%\GetDayBefore.vbs" 
11.
 
12.
 
13.
> "%VBScript1%" echo.WScript.Echo CStr(Day(Date)) + "." + CStr(Month(Date)) + "." + CStr(Year(Date)) 
14.
 
15.
> "%VBScript2%" echo.intDay   = WScript.Arguments(0) 
16.
>>"%VBScript2%" echo.intMonth = WScript.Arguments(1) 
17.
>>"%VBScript2%" echo.intYear  = WScript.Arguments(2) 
18.
>>"%VBScript2%" echo. 
19.
>>"%VBScript2%" echo.vntTheDay    = DateSerial(intYear, intMonth, intDay) 
20.
>>"%VBScript2%" echo.vntDayBefore = DateAdd("d", -1, vntTheDay) 
21.
>>"%VBScript2%" echo. 
22.
>>"%VBScript2%" echo.WScript.Echo CStr(Day(vntDayBefore)) + "." + CStr(Month(vntDayBefore)) + "." + CStr(Year(vntDayBefore)) 
23.
 
24.
 
25.
for /f "tokens=1-3 delims=." %%a in ('cscript /nologo "%VBScript1%"') do ( 
26.
  for /f "delims=" %%n in ('dir /b /a:-d "%BaseDir%\%%c\%%b\%%a" ^| find /v /c "\"') do ( 
27.
    echo %%n Dateien in %BaseDir%\%%c\%%b\%%a 
28.
29.
 
30.
  "%7Zip%" a -tzip "%BaseDir%\%%c\%%b\%%a.zip" "%BaseDir%\%%c\%%b\%%a\*.*" > NUL && ( 
31.
    del "%BaseDir%\%%c\%%b\%%a\*.*" 
32.
33.
 
34.
  if %%a equ 1 ( 
35.
    for /f "tokens=1-3 delims=." %%d in ('cscript /nologo "%VBScript2%" %%a %%b %%c') do ( 
36.
      "%7Zip%" a -tzip "%BaseDir%\%%f\%%e.zip" "%BaseDir%\%%f\%%e\*.zip" > NUL && ( 
37.
        del "%BaseDir%\%%f\%%e\*.zip" 
38.
39.
40.
41.
42.
 
43.
del "%VBScript1%" 
44.
del "%VBScript2%" 
45.
 
46.
popd
Sollte auch beim Jahreswechsel funktionieren.

Gruß
Friemler
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
CMD: icacls in for-Schleife
gelöst Frage von Lowrider614Batch & Shell2 Kommentare

Hallo, Was ich habe: Einen übergeordneten Ordner mit ca. 100 Projektverzeichnisen drin. Was ich will: In jedem Projektverzeichnis einen ...

Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Batch & Shell
ERRORLEVEL-Übergabe in einer FOR-Schleife mit psexec
gelöst Frage von zeusplanetBatch & Shell2 Kommentare

Hi Leute, komme einfach nicht weiter, bzw. auf keine einfache Lösung. Ich sichere mehrere Server über eine Batch (Drive ...

Batch & Shell
Batch - Hilfe bei FOR-Schleife
gelöst Frage von makroll10Batch & Shell8 Kommentare

Hallo, aus einer Access-Datenbank heraus rufe ich per VBA den u.a. Batch mit den Parametern: Reports!UB_System!Pfad ("C:\Users\User\Documents\Polar\") und Reports!UB_Polar!hrmexport1 ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter wieder installieren auf einer frischen Windows-Installation

Tipp von Lochkartenstanzer vor 13 StundenMicrosoft Office1 Kommentar

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 15 StundenDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 16 StundenSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 19 StundenMicrosoft Office1 Kommentar

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Server-Hardware
Veeam Backup Server stürzt alle paar Tage ab
Frage von Leo-leServer-Hardware11 Kommentare

Hallo Forum, ich habe momentan folgendes Problem. Veeam Backup and Replication 9.5 u2 auf voll gepatchten DL 380 G7 ...

Windows 10
Win10 Laptop findet keine Netzwerkgeräte und Freigaben mehr
Frage von CoolzeroWindows 1010 Kommentare

Hi, seit ein paar Tagen habe ich das Problem das mein Windows 10 Laptop keine Geräte mehr in der ...

Batch & Shell
Dateien verschieben mit batch
gelöst Frage von michi-ffmBatch & Shell10 Kommentare

Hallo Zusammen hat jemand evtl eine Idee? Zunächst hier das Skript: Leider werden keine UNC-Pfade unterstüzt, kann mir jemand ...