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

Datei verschieben um bestimmte Uhrzeit.

Frage Entwicklung Batch & Shell

Mitglied: Samira-

Samira- (Level 1) - Jetzt verbinden

02.08.2009, aktualisiert 18:32 Uhr, 6859 Aufrufe, 8 Kommentare

Guten Tag,
bin neu hier und kenne mich garnicht aus mit Batch Dateien. Ich hoffe mir wird geholfen und ich bedanke mich schon mal vorher.

Zuerst einmal habe ich eine Frage, und zwar werden die Batch Dateien von alleine ausgeführt? Oder muss ich da erst draufklicken?
Wenn es von alleine ausgeführt wird, ist es möglich ohne benachrichtigt zu werden? Also es soll einfach ausgeführt werden, ohne das das mitkriege.

Nun zu meiner eigentlichen Frage. Ich möchte einen bestimmten Ordner von A nach B kopieren, dabei sollte es aber komplett rüber gezogen werden, ohne das er noch im ersten Verzeichnis vorhanden ist.
Das Problem dabei wäre, es ist immer der selbe Ordner, also dürften die verschobenen Ordner nicht ersetzt werden, sondern mit der Endung 2, 3, 4, usw. kopiert werden.
Dann noch zu der dritten Sache, der Ordner sollte um eine bestimmte Uhrzeit immer verschoben werden, bzw. einmal am Tag irgendwann.

Ich weiß es ist viel verlangt, meine Frage ist nun, würde das alles klappen und wenn ja, wie?

Vielen Dank
Samira-
Mitglied: rubberman
02.08.2009 um 20:00 Uhr
Hallo Samira-,
keine Datei öffnet sich von selbst. Entweder man öffnent sie durch anklicken, lässt sie von einer anderen Anwendung öffnen, oder nutzt die Möglichkeiten des Betriebssystems das zu erledigen (Autostart, geplanter Task). Für dein Vorhaben sollte der geplante Task das sein, was du suchst.
MOVE sollte der Befehl sein, der dir das Verzeichnis verschiebt. Die Sache mit dem Hochzählen ist auch machbar. Man muss eben jedes mal prüfen, welche Verzeichnisse bereits existieren.
Da du scheinbar noch nicht sehr viel Erfahrung hast, solltest du noch einmal genau das Verzeichnis (jeweils mit Pfad) posten, das verschoben werden soll, sowie das Verzeichnis in das verschoben werden soll.

Grüße
rubberman
Bitte warten ..
Mitglied: Labamba81
03.08.2009 um 08:50 Uhr
Schau dir mal das Robocopytool von MS an. Zusammen mit der Yarcgui kann man das prima konfigurieren.

Ich weis zwar nicht ob man die Ordner durchnummerieren kann (Chancen stehen alelrdings nicht schlecht). Was ich aber definitiv weis, ist das man das aktuelle Datum bis auf die Sekunde genau eingeben kann.

http://www.heise.de/software/download/special/backup_mit_robocopy/17_1
Bitte warten ..
Mitglied: Samira-
03.08.2009 um 10:24 Uhr
Vielen Dank für die schnellen Antworten. Und wie ist das mit dem Datum und der Uhrzeit, würde es auch dann durchgeführt werden, selbst wenn der Computer nicht eingeschaltet ist?

Der Ordner Unterlagen sollte vollständig kopiert werden. Er besteht im Verzeichnis:
C:\Users\Samira\Documents\Unterlagen

Sollte verschoben werden in in Ordner Vollständig. Er besteht im Verzeichnis:
C:\Users\Samira\Documents\Unterlagen

Also sollte er später irgendwann einmal im Ordner "Unterlagen" die Ordner "Unterlagen 1", "Unterlagen 2", usw. sein.
Bitte warten ..
Mitglied: Labamba81
03.08.2009 um 12:25 Uhr
Zitat von Samira-:
Vielen Dank für die schnellen Antworten. Und wie ist das mit dem
Datum und der Uhrzeit, würde es auch dann durchgeführt
werden, selbst wenn der Computer nicht eingeschaltet ist?


Wie ist das denn gemeint? Bedingung für die Batchdatei, ist natürlich das die Quelle "C:\Users\Samira\Documents\Unterlagen" verfügbar ist (NAtürlich auch das Ziel).

Ist der PC/Netzwerkfestplatte/Server aus geht das natürlich nicht

Ein PC macht ohne Strom keinen Handschlag :
Bitte warten ..
Mitglied: crashzero2000
03.08.2009 um 12:55 Uhr
Der Ordner Unterlagen sollte vollständig kopiert werden. Er
besteht im Verzeichnis:
C:\Users\Samira\Documents\Unterlagen

Sollte verschoben werden in in Ordner Vollständig. Er besteht im
Verzeichnis:
C:\Users\Samira\Documents\Unterlagen

Also sollte er später irgendwann einmal im Ordner
"Unterlagen" die Ordner "Unterlagen 1",
"Unterlagen 2", usw. sein.

Das ist ja lokal auf deinem PC, also muß die Büchse dann auch eingeschalten sein.
Bitte warten ..
Mitglied: rubberman
03.08.2009 um 22:11 Uhr
Da beißt sich was. In deinem dritten Abschnitt schreibst Du, dass ein Ordner "Vollständig" in "Unterlagen" existiert, in den verschoben werden soll. Im vierten Abschnitt sollen die neuen Verzeichnisse aber direkt in "Unterlagen" erstellt werden.
Ja, wo denn nun?

Ich muss Labamba81 und crashzero2000 recht geben. Natürlich passiert nichts, wenn der Rechner aus ist. Im Zweifelsfall passiert auch nichts wenn der Rechne an ist, du aber nicht angemeldet bist. Die Frage ist, warum sollte überhaupt was passieren? Solange der Rechner ausgeschaltet ist, werden keine Daten erstellt, die verschoben werden könnten.

Also hast du folgendes Problem:
Wenn du das ganze als geplanten Task ausführen lassen willst, passiert nichts, wenn der Rechner zur angegebene Zeit aus ist. Wenn du das andererseits über den Autostart ausführen lässt, wird bei jedem Start des Rechners der Batch ausgeführt (ggf. also auch mehrfach am Tag) und ein neues Verzeichnis erstellt.
Wie wäre es, wenn du statt der fortlaufenden Numerierung, immer das aktuelle Datum an den Namen Anhängen würdest? Vorteile:
Du wüsstest auf den ersten Blick, wann das Verzeichnis erstellt wurde.
Das aufwendige Durchsuchen, welche Nummer die letzte war, entfällt.
Du kannst das ganze über den Autostart ausführen, da ein simpler Check, ob schon ein Verzeichnis mit dem aktuellen Datum existiert, genügt, um nicht mehrere Verzeichnisse an einem Tag zu erstellen
Bitte warten ..
Mitglied: pieh-ejdsch
05.09.2009 um 05:48 Uhr
Moin samira,

sorry für meine späte Beantwortung aber ich hatte viele andere Sachen auch noch zu tun jetzt zu Deinem Problem

Es wird vor der VerschiebeZeit Verschoben und Zwar der komplette Inhalt von "C:\Users\Samira\Documents\Unterlagen" nach "C:\Users\Samira\Documents\Unterlagen 1"
und beim nächsten Zeitraum nach "C:\Users\Samira\Documents\Unterlagen 2" und so weiter.
Wenn Dein Ordner jetzt schon voller Dateien ist erledigt der Batch alles nach den jeweiligen Erstellungszeiten der Dateien bzw Ordner und Verschiebt in die jeweiligen "Unterlagen NR" pro Zeitraum.

Wenn die 24 Stunden nicht abgelaufen sind werden die Dateien dieses Zeitraumes nicht Verschoben. Du kannst also den Batch x-mal am Tag starten

ich gehe davon aus, dass Du die Dateien in den Ordner Unterlagen erstellst bzw hineinkopierst also nicht von irgendwo hinein Verschiebst, dann müsste es so klappen.

Bei
Set VerschiebeZeit=15:45
gibst Du hinter dem = die Zeit ein, welche die Verschiebezeit sein soll.
ganz unten die Zeile mit @echo wenn der Batch so anzeigen tut wie er soll - nur das @echo entfernen

Du kanst dann den Batch Verknüpfen also eine Verknüpfung vom Batch anlegen bei der Verknüpfung klickst Du Rechts und gehst auf den Reiter Verknüfung. In der Zeile Ausführen wählst Du dann Minimiert aus. dann Enter drücken. diese Verknüpfung kopierst Du Dir in den AutostartOrdner hinein. und wenn Du willst kannste noch den Batchlink zu der gleichen Zeit im Taskplaner starten.



01.
@echo off & setlocal 
02.
:: Hier die tatsächliche Verschiebezeit eingeben als Stunde:Mintue 
03.
set VerschiebeZeit=15:45 
04.
set /a NR = 1 
05.
set "Pfad=C:\Users\Samira\Documents\Unterlagen" 
06.
pushD "%Pfad%" 
07.
:: ---------------------- gestern setzen--------- 
08.
set "filedate=%date: *=%" 
09.
for /f "tokens=2 delims=()" %%i in ('echo.^|date') do set Format=%%i 
10.
set filetime=%Verschiebezeit% 
11.
call :1stTest 
12.
:: ---------------------- Pruefung auf letzten Intervall Ordner 
13.
for /f "tokens=2,*" %%i in ('dir /a:d zxy 2^>nul') do if "%%i"=="von" (set "folder=%%~nj" & for /f "tokens=*" %%k in ('dir "%%~fj*" /a:d /b ') do set "name=%%k" & call :foldrtst ) 
14.
:: ---------------------- Finden und Verschieben der Daten 
15.
for /f "skip=5 tokens=1-3*" %%i in ('dir /a: /o:gd /t:c') do (set /a NRb = NR & set "filedate=%%i" & set "filetime=%%j" & set "name=%%l" & call :timefram "%%k" ) 
16.
 
17.
:: Wenn der Batch richtig funktioniert machst Du hier nur goto :eof 
18.
echo Ablauf fertig !&pause & goto :eof 
19.
 
20.
:: ---------------------- Schleife: Pruefung auf letzten Intervall Ordner 
21.
:foldrtst 
22.
if "%name%" == "%folder% %NR%" (set /a NR + = 1 & goto :foldrtst ) else goto :eof 
23.
:: ---------------------- Schleife: Finden und Verschieben der Daten 
24.
:timefram 
25.
for %%i in ("." "..") do if "%name%" == "%%~i" goto :eof 
26.
echo "%filetime%" | findstr "Dat Ver" && goto :eof 
27.
if not %NRb% == 0 if "%~1" == "<DIR>" (if "%name%" == "%folder% %NRb%" (goto :eof ) else (set /a NRb - = 1 & goto :timefram)) 
28.
:1stTest 
29.
:: ---------------------- Datumaufdröselung nach Numerisch ---------------------- 
30.
for /f "tokens=1-3 delims=-" %%i in ("%Format%") do for /f "tokens=1-3 delims=.-" %%l in ("%filedate%") do set "%%i=%%l" & set "%%j=%%m" & set "%%k=%%n" 
31.
:: --------- Zweistellige Jahresaufloesung (19)40 bis (19)99, (20)00 bis (20)39 
32.
if %JJ:~0,-1% leq 9 if %JJ:~0,-1% lss 4 (set JJ=20%JJ%) else set JJ=19%JJ% 
33.
:: LY              Schaltjahr 
34.
set /a LY = JJ / 4 - ( JJ - 1 ) / 4  - (JJ / 100 - ( JJ - 1 ) / 100) + ( JJ / 400 - ( JJ - 1 ) / 400 ) 
35.
set /a MM=10%MM% %% 100 
36.
:: beforemonthdays Vergangene Tage im Jahr bis zum Vormonat LY xday 
37.
:: alldays         Vergangene Tage bis Dato als TageZahl 
38.
if %MM% lss 3 (set /a LY = 0 & if %MM% equ 2 (set /a xday = 2 ) else set /a xday = 1 ) else if %MM% equ 3 set /a xday = - 1 
39.
set /a beformonthdays =  (( MM - 4 + MM / 8 ) / 2 + ( MM - 1 ) * 30 ) + LY + xday 
40.
set /a TT=10%TT% %% 100 
41.
:: Vergangene Tage 
42.
set /a alldays=((JJ-1600)*365)+((JJ-1601)/4)+((JJ-1601)/100)-((JJ-1601)/400) + beforemonthdays + TT 
43.
:: ---------------------- Ende Datumaufdröselung nach Numerisch ---------------------- 
44.
:: ---------------------- Zeitaufdröselung nach Numerisch ---------------------- 
45.
for /f "tokens=1,2 delims=:" %%i in ("%filetime%") do set "HH=%%i" & set "min=%%j" 
46.
set /a timenumber=(10%HH% %% 100)*60+(10%min% %% 100) 
47.
:: ---------------------- Ende Zeitaufdröselung nach Numerisch ---------------------- 
48.
:: Vergleichen der gesetzten Zeit mit dem Letztem "lastupperlimit" . wenn "lastupperlimit" 
49.
:: größer als "presenttime" dann Verschiebung im naechsten  Ordner bzw erstmal Anzeigen im CMD Fenster 
50.
if not defined OldDate set /a OldDate=alldays-1 & set "MoveTime=%timenumber%" & goto :eof 
51.
if not defined NowFileDate set NowFileDate=%alldays% 
52.
if %NowFileDate% lss %alldays% if %timenumber% lss %MoveTime% if not %OldDate% equ %alldays% set /a NR+=1,NowFileDate+=1 
53.
if %timenumber% lss %MoveTime% if %OldDate% equ %alldays% goto :eof 
54.
 
55.
:: Wenn alles klappt so wie es Anzeigt entferne @echo 
56.
@echo move "%name%" "%folder% %NR%"
Bitte warten ..
Mitglied: pieh-ejdsch
31.05.2010 um 00:08 Uhr
Achtung !!! Bitte Beachten !!!

vor die Zeile 38
muss noch diese Zeile eingeschoben werden:
01.
set /a xday=0
Gruß Phil
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Userverwaltung
gelöst AD Passwort um bestimmte Uhrzeit setzen (6)

Frage von agnostiker zum Thema Windows Userverwaltung ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...