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
Kommentar vom Moderator Biber am 27.07.2009 um 19:39:06 Uhr
So, den Beitrag schließ ich jetzt aber ganz schnell.

Grüße
Biber
GELÖST

Batch Sicherung der Dateien der letzten 18 Monate

Frage Entwicklung Batch & Shell

Mitglied: Koido1

Koido1 (Level 1) - Jetzt verbinden

15.07.2009, aktualisiert 18.10.2012, 6357 Aufrufe, 26 Kommentare

Fachfrage

Ein Hallo in Runde,

ich habe eine Fachfrage und keine Ahnung ob es dafür überhaupt eine Lösung gibt.

Ich möchte alle Ordener/Verzeichnisse eines Laufwerks X auf ein Laufwerk Y kopieren.
Und jetzt käme mein Problem. Ich möchte, dass sobald ich die batch-Datei starte, dass alle Datein die auf dem Laufwerk X älter als 18 Monate sind auf das Laufwerk Y kopiert werden.

Wenn ich mit xcopy /d ein Datum definiere, kopiert er jedoch immer nur die Daten von diesem Zeitpunkt bis jetzt. Wie könnte ich vorgehen???

(Robocopy kann ich nicht verwenden)

Vielen Dank im voraus.
Mitglied: empreality
15.07.2009 um 08:59 Uhr
Das ginge in der Tat leicht mit Robocopy. Warum kannst du das nicht verwenden o.O
Bitte warten ..
Mitglied: 60730
15.07.2009 um 09:02 Uhr
Moin,

wenn es denn wirklich nicht via Robocopy laufen darf, dann ist "stricken" angesagt

Xcopy wäre schon mal ein guter Ansatz.

Schau dir mal den Schalter /exclude an - da kannst du auch eine Liste anfügen.

Nun wirds "komplex" - du mußt diese Liste (mit allen Dateien - die nicht älter als 18 Monate sind) vorher irgendwie erzeugen.

Da hätte ich zwar auch Ideen, die rel. sicher von einem der beiden Bs (aus diesem B Bereich) inspiriert sind -aber im Moment brennt bei uns die Hütte.

Datei Datum - sollte dein Suchansatz werden.

Gruß
Bitte warten ..
Mitglied: 2hard4you
15.07.2009 um 09:02 Uhr
Moin,

Robocopy wäre allerdings schon der Idealkandidat

ansonsten move die jüngeren Dateien woanders hin, kopiere den Rest, und move die jüngeren Dateien zurück...

alternativ

kopiere alle und lösche die jüngeren danach

Gruß

24
Bitte warten ..
Mitglied: crashzero2000
15.07.2009, aktualisiert 18.10.2012
Moin Koido1,

schau mal hier, ich denke das hilft :
http://www.administrator.de/forum/%c3%84ltere-dateien-%287-tage%29-auto ...
Bitte warten ..
Mitglied: 60730
15.07.2009, aktualisiert 18.10.2012
Zitat von crashzero2000:
Moin Koido1,

schau mal hier, ich denke das hilft :
http://www.administrator.de/forum/%c3%84ltere-dateien-%287-tage%29-auto ...

Servus,

wobei - wenn der Grund - nicht Robocopy nutzen zu dürfen - um "sicher" zu sein, dass das Backup wirklich überall läuft - was eine Annahme meinerseits ist...

Dann wäre auch forfiles keine Alternative.

Warten wir das Feedback der bisherigen Beiträge ab.

Gruß
Bitte warten ..
Mitglied: Koido1
15.07.2009 um 13:29 Uhr
Erst einmal danke an alle.

Hier ein paar Ergänzungen und sorry das ich nicht klarer zum Anfang war.
Das ganze soll in einer Firmenumgebung genutzt werden. Ich bin kein Admin, habe aber die "Erlaubnis" was Eigenes "produzieren" zu dürfen. Robocopy wurde genau mit der Begründung von >timobeil< abgelehnt.

Also bin ich auf xcopy angewiesen. Mit exclude kann ich doch keine Daten ausfiltern, oder etwa doch? Ich dachte bisher immer nur an das Herausfiltern für bestimmte Dateien, z.B. *doc oder *pdf.

@2hard4you

Jeden Tag werden auf dem Laufwerk viele Daten bewegt, so dass ein "ansonsten move die jüngeren Dateien woanders hin, kopiere den Rest, und move die jüngeren Dateien zurück..." wahrscheinlich ausfällt.

"kopiere alle und lösche die jüngeren danach"

Wäre eine Alternative, müsste aber auch in zwei Schritten passieren, also:

1. Kopiere alle die älter sind als 18 Monate
2. Move all die älter sind als 19 Monate

Hintergrund ist, dass die Archivablage (Y) im Gegensatz zum persönlichen Laufwerk (X) nicht täglich gesichert ist. Wenn gerade da die Daten verloren gehen, wäre das natürlich unschön.

@cashzero
Ich hatte das gelesen, verstehe es aber nicht richtig. Vielleicht kannst Du mir ein wenig Unterstützung geben.

Die Idee des Codes wäre:

set quelle="X:\...\test"
set ziel="Y:\"

@echo off
xcopy %quelle% %ziel% /D /E /Y /I
Pause

Damit funktioniert das Kopieren des Kompletten Verzeichnisses, wenn ich jetzt aber die 18 Monate (550 Tage) abziehen will wie gehe ich vor?

echo FOR /D %%i in ("quelle") do forfiles /p %%i /d -550 /c "cmd /c move @File %%i\ziel\"
Pause

Wenn ich das eingebe, funktioniert nur der erste Teil.

Gibt es bei xcopy nicht auch sowas wie /MINLAD?

Viele Grüße
Bitte warten ..
Mitglied: empreality
15.07.2009 um 13:40 Uhr
Forfiles kannst du benutzen und Robocopy nicht? Versteh das immer noch nicht ....

Ansonsten schreib und compilier dir doch was mit AutoIT. Ein Tool was das macht was du brauchst hast du in 10 min fertig.
Bitte warten ..
Mitglied: 60730
15.07.2009 um 13:45 Uhr
Zitat von Koido1:
Erst einmal danke an alle.

Also bin ich auf xcopy angewiesen. Mit exclude kann ich doch keine
Daten ausfiltern, oder etwa doch? Ich dachte bisher immer nur an das
Herausfiltern für bestimmte Dateien, z.B. *doc oder *pdf.

01.
Rem ich bin ein Beispiel - in Pfad sollten .ini und andere  Dateien sein 
02.
dir /b Pfad:\*.ini > Pfad:\bsp.log 
03.
xcopy Pfad:\*.* Pfad2:\ /exclude:Pfad:\bsp.log
feuerst du diese batch ab - kopiert er alle Dateien, außer den .inis von Pfad nach Pfad2

Gibt es bei xcopy nicht auch sowas wie /MINLAD?
Nicht das ich wüßte, deshalb sind ja die Tools vom Reskit da.

xcopy /?
dir /?

Wie gesagt, das (mit den Monaten ausrechnen) wird "fummelei" und Ansatzweise funktioniert das auch, aber wehe - ein englisches System ist dabei.

daher hab ich da nix aus der Schublade...

Viele Grüße

Gruß
Bitte warten ..
Mitglied: Koido1
15.07.2009 um 14:31 Uhr
Du hast recht. Forfiles funktioniert nicht, weil ich die auch nicht vorhanden sind und ich die auch nicht nutzen darf. Das ist zum verzweifeln...
Bitte warten ..
Mitglied: empreality
15.07.2009 um 14:46 Uhr
Wie gesagt, dann bau dir mit AutoIT was selbst. Die Exe-Dateien die da rauskommen kannst du genauso weitergeben oder verkaufen oder was auch immer wie deine Batch-Datei.

Für alles was auch nur halbwegs mit Auswertungen oder Berechnungen etc zu tun hat verwende ich mittlerweile AutoIT. Batch-Scripting ist mir da in meinen Augen zu unnötig kompliziert.
Bitte warten ..
Mitglied: 2hard4you
15.07.2009 um 15:10 Uhr
Moin,

Warum ist Robocopy nicht einsetzbar?

Gruß

24
Bitte warten ..
Mitglied: Biber
15.07.2009 um 23:46 Uhr
Moin Koido1,

willkommen im Forum.
Macht da mal nicht so ein Heckmeck drum um das bisschen Anforderung.
Wenn es halt nur nur XCopy sein darf - ja hey! Dann machen wir es halt damit.
MacGuywer hat schon mal mit zwei Büroklammern und einer Wärmflasche das AKW Krümmel repariert.
Oder war das Vattenfall selbst? Egal.

Also:
Xcopy kann nicht: Nur alle Dateien (ggf. in Unterverzeichnissen) kopieren, die ÄLTER sind als Datum x.
Is' nu' mal so.

Aber:
Xcopy kann prima: Nur alle Dateien (ggf. in Unterverzeichnissen) kopieren, die JÜNGER sind als Datum x.

Reicht doch.
Du sagst: "ich soll alle Dateien älter als 18 Monate wegkopieren"....
...okay... ich könnte doch ebenso umformulieren:
"ich soll alle Dateien kopieren ausgenommen Dateien jünger als 18 Monate"

Und ein "Kopieren von allen Dateien /Excluded bestimmte" ..das kann XCopy.
Is' sich sein Job.

Formulieren wie die Ausschlussbedingung um:
-> "außer die, die jünger sind als 18 Monate" ==> Flapsiger formuliert: = "außer die nach dem 01.01.2008"

Diese kann XCopy anlisten mit dem Schalter /L
Demo:
[Alles Test am CMD-Prompt; das ">" am Zeilenanfang kennzeichnet einzutippselnde Befehle]
>xcopy /L /d:01-01-2008 /s /e d:\temp\backup1 f:\ggg\  
D:\temp\backup1\Backup.bkf 
D:\temp\backup1\WINDOWS\win.ini 
D:\temp\backup1\WINDOWS\system\test.txt 
3 Datei(en) kopiert
Mit dieser Beispielzeile simuliere ich ein XCopy von allen Dateien von "d:\temp\backup1" und darunter nach "f:\ggg\".
Wobei das Verzeichnis "\ggg\" nicht existiert und nicht existieren muss - das Laufwer "F:" dagegen muss da sein.
Außerdem sage ich mit der Bedingung /D.01-01-2008 "nur alles vom oder nach dem 1.Januar 2008".
[Achtung: Format ist MM-TT-YYYY!, s. XCopy / ?]

Alle Dateien werden zwar nur angelistet [Schalter /L], aber dennoch erscheint eine Meldung "x Datei(en) kopiert."

Wenn ich diese Meldung entsorge und den Output in eine Textdatei schreibe, habe ich meine EXCLUDE-Liste.
[Alles Test am CMD-Prompt; das ">" am Zeilenanfang kennzeichnet einzutippselnde Befehle]
>xcopy /L /d:01-01-2008 /s /e d:\temp\backup1 f:\ggg\ |find /v "Datei(en)"  
D:\temp\backup1\Backup.bkf 
D:\temp\backup1\WINDOWS\win.ini 
D:\temp\backup1\WINDOWS\system\test.txt
:Und was jetzt OHNE die "x Datei(en) kopiert" aufm Schirm ist, will ich lieber in einer Datei:
>xcopy /L /d:01-01-2008 /s /e d:\temp\backup1 f:\ggg\ |find /v "Datei(en)" >%temp%\myExclude.Lst 
Jetzt kannst Du das eigentlich gewünschte XCopy-Kommandochen abfeuern:
xcopy  /Exclude:%temp%\myExclude.Lst /s /e d:\temp\backup1 f:\ggg\ 
[Anmerkung] ....und auch das könntest Du zuerst mit dem Schalter /L gefahrlos testen:
xcopy  /L /Exclude:%temp%\myExclude.Lst /s /e d:\temp\backup1 f:\ggg\ 
[/Anmerkung]

Fazit:
  • geht mit XCopy und ohne RobosonstwasCopy
  • geht ohne Batchkenntnisse
  • geht ohne Assemblerprogrammierung zur Datumskonvertierung

2 Zeilen mit "Xcopy" nacheinander vom CMD-Prompt abgeschossen...
..da brauchen wir doch nicht ein halbes Dutzend erwachsene Admins mit beschäftigen.

Grüße
Biber
Bitte warten ..
Mitglied: Woolfsmann
16.07.2009 um 08:25 Uhr
Hi,

Repekt Herr Biber ;)

Gewust wie und dann noch so gut erklärt, Danke.

gruß
Woolfsmann
Bitte warten ..
Mitglied: Koido1
16.07.2009 um 10:05 Uhr
Hallo Biber,

vielen Dank für Deine Info.
Hab das jetzt mal wie folgt umgesetzt.


@echo off
xcopy /L /d:08-04-2009 /s /e /y /i "X:\quelle" "Y:ziel" |find /v "Datei(en)" >%temp%\myExclude.Lst
xcopy /Exclude:%temp%\myExclude.Lst /s /e /y /i "X:quelle" "Y:ziel"
Pause

Das Datum habe ich jetzt zur Probe mal auf unterschiedliche Zeitpunkte gesetzt. Leider kopiert er mir immer das komplette Quellverzeichnis und nicht nur die Dateien, die vor diesem Zeitpunkt liegen.

Wo liegt mein Fehler???

Meine zweiter Frage wäre, ob man das Datum auch dynamisch machen kann. Damit müsste ich es nicht jeden Tag von Hand ändern.

Vielen Dank
Bitte warten ..
Mitglied: Koido1
16.07.2009 um 10:31 Uhr
Hallo Biber,

das mit dem Datum funktioniert. Habe immer mit Monat 8 probiert. Juli ist aber 7 und August haben wir noch nicht. Das funktioniert!!!!!!!!!!!

Ich bin grade happy.

Wäre also nur noch meine Frage ob das mit dem Datum dynamisch geht.
Bitte warten ..
Mitglied: Biber
16.07.2009 um 15:11 Uhr
Moin Koido1,
Zitat von Koido1:
Hallo Biber,

das mit dem Datum funktioniert. Habe immer mit Monat 8 probiert.
Juli ist aber 7 und August haben wir noch nicht. Das funktioniert!!!!!!!!!!!
Hab ich doch gleich gesagt.

Meine zweiter Frage wäre, ob man das Datum auch dynamisch machen kann.
Klar. Lerne zu skripten.

Damit müsste ich es nicht jeden Tag von Hand ändern
Wie? Du bist eingestellt worden, damit Du jeden Tag alles sicherst, was älter ist als 18 Monate?
Wassn das fürn Laden? Gibts doch wieder ABM-Stellen?

Na egal, wenn Du wenigstens im Gegenzug die Rechtschreibfehler im Titel korrigierst und den Beitrag auf "Erledigt" setzt,
dann kannst Du einen schnell zusammengeschroteten Zweizeiler dafür haben.

01.
'DateBeforeXMonth.vbs -Hilfsschnipsel 
02.
d = dateadd("m", wscript.arguments(0), date ) 
03.
' Variable d würde "16.01.2008" enthalten  
04.
' wenn heute =15.7.2009 wäre und Parameter gleich (-18) [monate] 
05.
Wscript.echo (month(d) &"-"& day(d) & "-" & year(d) ) 
06.
' aber jetzt wird das "16.01.2008" ausgegeben als "1-16-2008" für XCopy
Die Batch- bzw.CMD-Befehle kennen keine Datumsarithmetik... also "Datum minus 3 Wochen" oder "11.4.2003 plus 20 Monate".
Aber Du kannst jemand fragen, der etwas davon versteht - also zum Beispiel die VBSkript oder JScript-Engines, die auf (fast)jedem Windowsrechner ohnehin nichtstuend rumliegen.

Wenn Du den obigen Schnipsel so aufrufst:
[ wieder gilt: ">" am Zeilenanfang ist mein CMD-Prompt->nicht mit eingeben]
>cscript e:\schnipsel\DateBeforeXmonth.vbs -18 
1-16-2008
....bekommst du die Ausgabe (das Datum heute vor 18 Monaten) im XCopy-Format.
Wenn Du das ganze in einer Batchvariable verwenden willst, dann baue in Deinen Sicherungsjob ein:
01.
.... 
02.
FOR /F %%i in ('cscript x:\DeinPfad\DateBeforeXmonth.vbs -18') do Set "xcDate=%%i" 
03.
:: Danach steht in %xcDate% der Wert "1-16-2008", den Du brauchst 
04.
....
Grüße
Biber
Bitte warten ..
Mitglied: Koido1
17.07.2009 um 09:40 Uhr
Guten Morgen Biber,

vielen Dank für Deine Mühe. Zum Thema "lerne skripten..." Ich versuche ja schon mein Bestes. Vor einer Woche wusste ich noch nicht einmal was eine Batch-Datei ist. Heute kenne ich wenigstens ein paar Grundbegriffe und hier im Forum steht ne ganze Menge (leider verstehe ich nur ein Bruchteil, aber ich arbeite dran).

Zur ABM-Stelle. Naja, ich bin hier sowas wie die Vertretung vom Stellv. vom Prakti, nur besser bezahlt )
Muss nur seeeeeeehr flexibel sein. So sag´s der Chef.

Zum Thema selber.
Langsam kommst Du mir wirklich wie MacGyver, seit Ihr verwandt?

Ich habe jetzt also Deine vbs Datei erstellt:
01.
' datebeforemonth.vbs 
02.
 
03.
Wscript.quit(datediff("d", wscript.arguments(0), date)< 7)  
04.
d = dateadd("m", wscript.arguments(0), date )  
05.
Wscript.echo (month(d) &"-"& day(d) & "-" & year(d) ) 
und die bat lautet jetzt:
01.
@echo off 
02.
xcopy /L /d:FOR /F %%i in ('cscript "X:\quelle...\datebeforemonth.vbs -18"') doSet "XCDate=%%i" /s /e /y /i /c "X:\quelle" "Y:\ziel |find /v "Datei(en)" >%temp%\myExclude.Lst 
03.
 
04.
xcopy /Exclude:%temp%\myExclude.Lst /s /e /y /i /c "X:\quelle" "Y:\ziel" 
05.
Pause
Resultat: Es werden alle Daten von X nach Y kopiert.

Ich habe jetzt mal

cscript "X:\quelle...\datebeforemonth.vbs -18 in den CMD-Prompt eingegeben, da wird ausgegeben:

Eingabefehler: Für die Dateierweiterung ".vbs -18" gibt es kein Skriptmodul.


Habe ich jetzt was falsch eingegeben oder kann ich vbs auch nicht nutzen???

Danke Koido


PS: Überschrift auftragsgemäß geändert.
Bitte warten ..
Mitglied: Biber
17.07.2009 um 10:52 Uhr
Moin Koido1,

Langsam kommst Du mir wirklich wie MacGyver, seit Ihr verwandt?
Na ja, ich habe die Störfall-Verwaltung für einen ungenannt bleiben wollenden Siedewasserreaktor
am Rande von Geesthast geschrieben... das übt.

PS: Überschrift auftragsgemäß geändert.
Komisch - da steht doch immer noch "Datein". Vielleicht habe ich aber auch eine ältere Auflage vom Duden.
(Oder vom "Dudn"??) . Welche hast duden?

Okay, genug gekalauert.

Ich habe jetzt mal ...
Ich habe jetzt mal deine Codezeilen in Code-Tags gesetzt.
Wenn Du mal "editierst", dann siehst Du wie einfach Code-Formatierungen hier sind.

Ich habe jetzt mal ...
cscript "X:\quelle...\datebeforemonth.vbs -18 in den CMD-Prompt eingegeben, da wird ausgegeben:
Eingabefehler: Für die Dateierweiterung ".vbs -18" gibt es kein Skriptmodul.

Ist 100%ig der richtige Weg zu testen.
Ich denke, Du hast mindestens einen der beiden folgenden Tippfehler drin:
  • entweder nur ein öffnendes Anführungszeichen (und kein zweites) wie oben gepostet
  • und/oder KEIN Leerzeichen zwischen "...skriptname.vbs" und dem Parameter "minus 18"

BTW: ich habe den Parameter "wieviel Monate rückrechnen" aus alter Angewohnheit mit eingebaut, um einen Hauch Flexibilität mit reinzubringen.
Wenn sich bei Dir die Anforderung NIE ändert (immer exakt 18 Monate zurück), dann machen wir es OHNE Parameter.

01.
'---' datebeforemonthvbs  ohne Parameter.vbs 
02.
d = dateadd("m", -18), date )  
03.
Wscript.echo (month(d) &"-"& day(d) & "-" & year(d) ) 
Nimm diese abgespeckte Version und probier es nochmal vom CMD-Prompt bitte.

Ich hatte oben einen Tippfehler bei mit drin im letzten Codefragment ("..doset .." statt richtig "...do set..").
Ist bei mir berichtigt, Du hast ihn aber natürlich übernommen. Siehe oben.

Grüße
Biber
Bitte warten ..
Mitglied: Koido1
17.07.2009 um 12:57 Uhr
Mahlzeit,

funktioniert noch nicht. Das einzige was ich hinbekommen habe ist das Problem mit dem Duden )

Mit dem "editieren" ist ne feine Sache, mal sehen ob es auch mit dem schreiben klappt:

Mit den Tippfehlern habe ich überprüft. Eigentlich habe ich beide drin (also nicht die Fehler sondern beide Ansätze). Ich habe die auch mal von so:

01.
('cscript "X:\quelle...\datebeforemonth.vbs  -18"')
auf so

01.
('cscript "X:\quelle...\datebeforemonth.vbs"  -18')
und sogar auf so

01.
('cscript ""X:\quelle...\datebeforemonth.vbs"  -18"')
geändert. Leider funktioniert es trotzdem nicht. Auch das ' vor dem cscript sowie nach der 18 habe ich mal weggelassen, trotzdem kein Ergebnis. Da ich jedoch ein Leerzeichen in meiner Pfadangabe habe, muss ich ja die Leerzeichen nehmen.

Wenn ich
01.
('cscript "X:\quelle...\datebeforemonth.vbs"  -18')
in den Prompt eingebe, kommt jedoch keine Fehlermeldung mehr. Kopiert wird trotzdem später alles

Dann habe ich Deine abgespeckte Version versucht. Leider ebenfalls negativ. Er kopiert alles, keine Fehlermeldungen.

Alle beide Versionen habe ich auch mit 1 bzw. 2 Monaten gecheckt. Trotzdem wollt es net. Do set habe ich geändert.

Ich habe irgendwie das Gefühl der erkennt nach dem /d: das alles nicht.

Cu Koido
Bitte warten ..
Mitglied: Biber
17.07.2009 um 15:59 Uhr
Moin Koido,

dann lass uns dieses Detail noch mal Schritt für Schritt durchkaspern.

Bitte öffne einen CMD-Prompt ("Start"-"Bearbeiten"-cmd eintippen)

Dann alle Zeilen die bei mir mit ">" gekennzeichnet sind einzeln per Copy and Paste übernehmen und abschicken
und zwar ohne das erste ">"-Zeichen
(ACHTUNG erste Zeile INKLUSIVE eines ">"-Zeichens am Anfang)
01.
>>dateMinus18.vbs echo d=dateadd("m",-18, date): Wscript.echo (month(d) ^&"-"^& day(d) ^& "-" ^& year(d)) 
02.
 
03.
(=15:55:33  D:\temp=) 
04.
>type dateminus18.vbs 
05.
d=dateadd("m",-18, date): Wscript.echo (month(d) &"-"& day(d) & "-" & year(d)) 
06.
 
07.
(=15:55:38  D:\temp=) 
08.
>cscript dateminus18.vbs 
09.
1-17-2008 
10.
 
11.
(=15:55:45  D:\temp=) 
12.
>for /f %i in ('cscript dateminus18.vbs') do @Set "xcDate=%i" 
13.
 
14.
(=15:56:01  D:\temp=) 
15.
>set xc 
16.
xcDate=1-17-2008
Das ausgegebene Ergebnis sollte bei Dir genauso aussehen.

Wenn das passt, machen wir den Rest.

Grüße
Biber
Bitte warten ..
Mitglied: Koido1
20.07.2009 um 07:52 Uhr
Guten Morgen Biber,

ich hoffe Du hattest ein schönes WE. Vielen Dank für die Info soweit hat alles funktioniert. Das Datum wurde entsprechend im Prompt ausgegeben.

Cu Koido
Bitte warten ..
Mitglied: Koido1
23.07.2009 um 14:28 Uhr
Hallo Biber,

ich habe jetzt verschiedene Sachen probiert komm aber nicht weiter. Wenn Du mir bei dem "Rest" helfen würdest, wäre das super.

Cu Koido
Bitte warten ..
Mitglied: Biber
23.07.2009 um 16:49 Uhr
Moin Koido1,

wo klemmt es denn jetzt noch?
Wenn der von mir zuletzt gepostete Schnipsel bei Dir so tut, was ein Schnipsel eben tun soll, dann...

Übernimm aus meinem Kommentar vom 17.07.09 15:59
  • die Zeile 1 in deinen Batch (damit erzeugst Du eine "dateMinus18.vbs" im aktuellen Verzeichnis)
  • oder (empfohlene Variante) erzeuge statt ">>dateMinus18.vbs" lieber eine ">>%temp%\dateminus18.vbs" im %temp%-Verzeichnis, weil dort immer und für jeden Schreibrechte gegeben sind
  • Rufe das Script auf wie oben in Zeile 12 gezeigt, aber im Batch zwei Prozentzeichen (%%i) statt einem (%i)
  • danach hast Du Deine Variable %xcDate%, die Du in Deinem XCopy-Aufruf verwenden kannst.

Grüße
Biber
Bitte warten ..
Mitglied: Koido1
24.07.2009 um 09:23 Uhr
Guten Morgen Biber,

hach wenn ich nur wüsste, wo es klemmt. Ich rauf mir schon die Haare aus.

Ich habe eine dateMinus18.vbs erzeugt, die folgenden code hat:

01.
>dateMinus18.vbs echo d=dateadd("m",-18, date): Wscript.echo (month(d) ^&"-"^& day(d) ^& "-" ^& year(d)) 
und ich habe eine koidodateminus18.bat erstellt, die folgenden code hat:

01.
@echo off 
02.
xcopy /L /d:FOR /F %%i in ('cscript "X:\quelle\dateMinus18.vbs" -18"') do @set "XCDate=%%i" /s /e /y /i /c "X:\quelle" "Y:\ziel" |find /v "Datei(en)" >%temp%\myExclude.Lst 
03.
 
04.
 
05.
xcopy /Exclude:%temp%\myExclude.Lst /s /e /y /i /c "X:\quelle" "Y:\ziel" 
06.
Pause
Im Ergebnis wird jedoch alles von der Quelle ins Ziel kopiert.

Wenn ich beides in eine Bat schreibe, passiert nix. Bin am verzweifeln...

Cu Koido

PS: @set ist nicht doppelt, das wird hier nur doppelt angezeigt.
Bitte warten ..
Mitglied: Biber
24.07.2009 um 23:59 Uhr
Moin Koido1,

hach wenn ich nur wüsste, wo es klemmt. Ich rauf mir schon die Haare aus.
Hach, wenn dabei schon die Nerven blank liegen liegen, dann solltest Du Dich mal mit meiner Ex-Schwiegermutter in den Sommerschlussverkauf stürzen.
Dann können wir noch mal drüber diskutieren, was Stress ist.

Versuch es so:
[Zusammengestoppel aus den Resten von ganz oben (1.Biber-Kommentar und Deinem Ansatz]

01.
@echo off & Setlocal 
02.
>%temp%\dateMinus18.vbs echo d=dateadd("m",-18, date): Wscript.echo (month(d) ^&"-"^& day(d) ^& "-" ^& year(d))  
03.
FOR /F %%i in ('cscript %temp%\dateMinus18.vbs') do @set "XCDate=%%i 
04.
xcopy /L /d:%XCDate% /s /e /y /i "X:\quelle" "Y:ziel" |find /v "Datei(en)" >%temp%\myExclude.Lst 
05.
xcopy /Exclude:%temp%\myExclude.Lst /s /e /y /i "X:quelle" "Y:ziel"
[ungetestet]

Grüße
Biber
Bitte warten ..
Mitglied: Koido1
27.07.2009 um 08:18 Uhr
BIBER FOR PRESIDENT!

Es funktioniert!!!

Ich habe jetzt noch /e mit /c ausgetauscht und alles läuft Prima. Oh man, ich bin froh und bedanke mich ganz herzlich. Das war eine hervorragende Arbeit. Danke auch für Deine Ausdauer.

Hab jetzt schon meine nächste Erweiterung dieser Datei im Kopf (löschen alles was älter ist als 19 M), aber dazu muss ich hier im Forum erst mal noch ein bissel schmökern, denn ich habe gesehen, da gibts schon ne Menge dazu.

Nochmals Dank und nö mit Deiner Ex-Schwiegermutter, da würd ich dann doch verzichten. Fachtermini für Personen dieser ART: "Fürst der Finsternis"


CU

Koido
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...