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

Archivierung mittels Batch auf File-Server

Frage Entwicklung Batch & Shell

Mitglied: SWuser

SWuser (Level 1) - Jetzt verbinden

05.10.2009 um 08:30 Uhr, 5169 Aufrufe, 15 Kommentare

Hallo,

ich habe folgendes Problem:

ich habe ein kleine Batch-Programm geschrieben, das mir Druckaufträge auf dem Fileserver in separate Ordner verschiebt, diese Ordner sollen einmal im Monat archiviert werden.
Da ich aber auf dem FileServer kein WinRar, WinZip o.Ä. installieren kann, würde ich gern wissen ob man nicht auch irgendwie mit Windowseigenen Mitteln archivieren kann?

Danke schonmal im Vorraus!
Mitglied: Aristor
05.10.2009 um 09:14 Uhr
Mal mit NTBACKUP versucht oder willst du es direkt mit im Script haben?
ausführen --> ntbackup
Bitte warten ..
Mitglied: St-Andreas
05.10.2009 um 09:15 Uhr
Hallo,

eines vorweg: etwas zu packen hat noch nichts mit einer Archivierung im rechtlichen Sinne der diversen Archivierungspflichten zu tun.

Ansonsten für Deinen Fall würde ich Dir zu 7Zip raten. Ist kostenlos und die Kommandozeilenversion brauchst Du nicht zu installieren.
Bitte warten ..
Mitglied: SWuser
05.10.2009 um 09:21 Uhr
Zitat von Aristor:
Mal mit NTBACKUP versucht oder willst du es direkt mit im Script
haben?
ausführen --> ntbackup

Danke für die Info.

Die Archivierung sollte direkt mit im Script ausgeführt werden.
Wie mache ich das?
Bitte warten ..
Mitglied: Snowman25
05.10.2009 um 09:22 Uhr
der cmd-befehl den du suchst, ist wohl makecab
um danach wieder an die Dateien heran zu kommen, kannst du expand oder extract benutzen. je nachdem, was auf deinem System vorhanden ist
Bitte warten ..
Mitglied: SWuser
05.10.2009 um 09:24 Uhr
Zitat von St-Andreas:
Hallo,

eines vorweg: etwas zu packen hat noch nichts mit einer Archivierung
im rechtlichen Sinne der diversen Archivierungspflichten zu tun.


Hallo,

nee, soll nur gepackt werden, weil der Speicherplatz dadurch gespart wird.
Bitte warten ..
Mitglied: St-Andreas
05.10.2009 um 09:27 Uhr
Na denn probier mal die vorgestellten Möglichkeiten aus und teste mal welche Packmethode die kleinsten Archive erzeugt. Bei 7Zip bitte auch mal das Format 7Zip nutzen!

Wäre nett wenn Du das Ergebnis dann hier posten könntest.
Bitte warten ..
Mitglied: SWuser
05.10.2009 um 09:28 Uhr
Zitat von Snowman25:
der cmd-befehl den du suchst, ist wohl makecab
um danach wieder an die Dateien heran zu kommen, kannst du expand
oder extract benutzen. je nachdem, was auf deinem System vorhanden
ist

Von makecab habe ich auch schon gelesen. Leider sehe ich bei den Parametern nicht so recht durch, die mir die Hilfe dazu anbietet (zu packende Datei... Ziel... usw.)
Bitte warten ..
Mitglied: Snowman25
05.10.2009 um 09:30 Uhr
Zitat von SWuser:
Von makecab habe ich auch schon gelesen. Leider sehe ich bei den
Parametern nicht so recht durch, die mir die Hilfe dazu anbietet (zu
packende Datei... Ziel... usw.)

einfach mal 10 minuten mit dem befehl herumprobieren. Ist immer die beste möglichkeit, die parameter zu verstehen ;)

Alternativ gäbe es noch den befehl cabarc
Bitte warten ..
Mitglied: SWuser
05.10.2009 um 10:21 Uhr
Hmm... habe mich jetzt mal genauer mit MAKECAB auseinander gesetzt. Ich bekomme es hin, dass ich eine Datei in ein .cab Archiv "verwandle". ich möchte aber den Inhalt des ganzen Ordners in ein .cab Archiv packen.
Geht das überhaupt???
Bitte warten ..
Mitglied: rubberman
05.10.2009 um 23:58 Uhr
Hallo SWuser,

von makecab hatte ich bis jetzt noch nix gehört, finde aber interessant, dass Windows ein Packprogramm an Bord hat. Also hab ich mich mal kurz damit beschäftigt. Wenn ich das msdn richtig verstehe, könntest du folgendes versuchen:
01.
@echo off &setlocal 
02.
:: die Dateiendung 
03.
set ext=*.dat 
04.
:: die Verzeichnisse der Druckaufträge 
05.
set folder_1=c:\test1 
06.
set folder_2=c:\test2 
07.
 
08.
set nr=0 
09.
for /f "delims== tokens=1*" %%a in ('set folder_') do set "folder=%%b" &call :sub 
10.
pause 
11.
exit 
12.
 
13.
:sub 
14.
set /a nr+=1 
15.
pushd "%folder%" 
16.
:: Name kreieren 
17.
for /f "delims=. tokens=1-3" %%i in ("%date%") do set "name=Archiv_%%k%%j%%i_%nr%.cab" 
18.
:: .ddf Datei erstellen 
19.
chcp 1252>nul 
20.
>directives.ddf echo .Option Explicit 
21.
>>directives.ddf echo .Set CabinetNameTemplate=%name% 
22.
>>directives.ddf echo .Set CompressionType=MSZIP 
23.
>>directives.ddf echo .Set UniqueFiles="OFF" 
24.
>>directives.ddf echo .Set Cabinet=on 
25.
>>directives.ddf echo .Set DiskDirectory1=Temp 
26.
for /f "delims=" %%i in ('dir /a-d /b "%ext%"') do echo "%%i">>directives.ddf 
27.
chcp 850>nul 
28.
:: makecab aufrufen 
29.
makecab /f directives.ddf 
30.
:: aufräumen 
31.
del setup.inf 
32.
del setup.rpt 
33.
del directives.ddf 
34.
move "Temp\%name%" ".\%name%" 
35.
rd Temp 
36.
popd 
37.
goto :eof
Grüße
rubberman

<edit:> unten aufgeführte Änderungen vorgenommen </edit>
Bitte warten ..
Mitglied: SWuser
06.10.2009 um 07:43 Uhr
Danke für den Ansatz!

Ich habe jetzt bei set folder= meinen Ordner angegeben, wo die "nackten" Druckaufträge drin liegen.
Das Prog läuft auch, nur packt es nichts: "Datei nicht gefunden".
ganz unten steht dann auch noch zwei mal: "Das System kann die angegebene Datei nicht finden"
In dem Ordner sind aber 100%ig .dat files.

Edit:

Durch testweises Einfügen von Pausen nach jeder Zeile habe ich herausgefunden, dass hier:

for /f "delims=" %%i in ('dir /a-d /b "%ext%"') do echo "%%i">>directives.ddf

irgendwas nicht hinhaut, denn da sagt er mir: "Datei nicht gefunden".
Bitte warten ..
Mitglied: rubberman
06.10.2009 um 13:05 Uhr
Hallo SWuser,

2 mögliche Ursachen fallen mir ein:
- Du hast Umlaute in den Dateinamen. In dem Fall müsste man die Codepage für das Schreiben in die Datei noch ändern. (mach ich mal eben oben)
- Die Dateiextension ist nicht richtig angegeben. Welche Dateiendung haben die Dateien und wie sieht die Zeile
set "ext=..."
bei dir aus?

Grüße
rubberman
Bitte warten ..
Mitglied: SWuser
06.10.2009 um 13:13 Uhr
Zitat von rubberman:
Hallo SWuser,

2 mögliche Ursachen fallen mir ein:
- Du hast Umlaute in den Dateinamen. In dem Fall müsste man die
Codepage für das Schreiben in die Datei noch ändern. (mach
ich mal eben oben)
- Die Dateiextension ist nicht richtig angegeben. Welche Dateiendung
haben die Dateien und wie sieht die Zeile
set "ext=..."
bei dir aus?

Grüße
rubberman

Da hast du mir aber ebend mit Punkt 2 den richtigen Wink gegeben! die Endung meiner Dateien, die gepackt werden sollen ist .dat.

Hab das auch gleich mal eingegeben und es funktioniert! Super! Danke! Oft sinds die kleinen Dinge, die große Fehler verursachen ;)

Danke, Danke!!! :D

Edit: Wie kann ich es einstellen, dass das nicht nur in einem Ordner gepackt wird, sondern in allen Ordnern? Muss ich dazu den o.g. Code x-mal (für jeden Ornder) neu hinten anhängen? Oder kann ich auch bei set folder= mehrer Ordner hintereinander angeben?
Bitte warten ..
Mitglied: rubberman
06.10.2009 um 22:44 Uhr
Hallo SWuser,

du könntest den Code als Subroutine laufen lassen. Ich ändere mal oben, wie ich mir das vorstelle. Wichtig in diesem Beispiel ist, dass alle verwendeten Variablen für die Pfade mit folder_ beginnen.

Grüße
rubberman
Bitte warten ..
Mitglied: SWuser
07.10.2009 um 07:44 Uhr
Hallo rubberman,

funktioniert super! Echt klasse! Danke, danke! :D

Grüße
Felix
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Windows Server
Windows-File-Server - Macs - Probleme (5)

Frage von guenthergranate zum Thema Windows Server ...

Batch & Shell
"Generic" Drucker mit batch - File erstellen (6)

Frage von MrPreesident zum Thema Batch & Shell ...

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

Frage von xbast1x zum Thema Windows Server ...

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

Frage von Motte990 zum Thema Microsoft Office ...

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

Frage von Y3shix zum Thema Grafikkarten & Monitore ...