
16568
17.08.2006, aktualisiert am 18.08.2006
Datei kopieren, Zeitraum dafür aber sehr kurz
Ja, ich weiß, doofer Titel, aber ich weiß nicht, wie ich das sonst am Besten formulieren soll.
Ich habe einen Ordner, in dem 2 Dateien abgelegt werden.
Die eine Datei ist nicht bekannt.
Der Zweite ist bekannt.
Jetzt bin ich schon seit 4 Stunden auf der Suche nach einer Lösung, wie ich die Dateien in ein anderes Verzeichnis kopieren kann.
Der Trick dabei:
Die Dateien sind vielleicht eine viertel-Sekunde da (temp-Datei, eine davon hat sogar das Format: xxx~, also keine Dateiendung, und am Ende eine Tilde
)
Es ist für mich aber außerordentlich wichtig, an die beiden Dateien zu kommen.
Denn in den beiden Dateien hoffe ich die Antwort auf meine Frage zu finden, wieso ein von mir erstelltes Programm die Dateien nicht richtig ablegt, wo es soll. Auf den anderen bisher getesteten Rechnern hingegen funktioniert das TADELLOS *grrrr*
@Biber: God of Batch, ich beziehe Dich auch in mein Nachtgebet ein
Lonesome Walker
edit:
Es ginge auch, wenn der Ordnerinhalt nicht mehr gelöscht werden könnte.
Nach dem Motto: reinschreiben darf mein Programm, nur rauslöschen darf keiner mehr...
Geht das???
Ich habe einen Ordner, in dem 2 Dateien abgelegt werden.
Die eine Datei ist nicht bekannt.
Der Zweite ist bekannt.
Jetzt bin ich schon seit 4 Stunden auf der Suche nach einer Lösung, wie ich die Dateien in ein anderes Verzeichnis kopieren kann.
Der Trick dabei:
Die Dateien sind vielleicht eine viertel-Sekunde da (temp-Datei, eine davon hat sogar das Format: xxx~, also keine Dateiendung, und am Ende eine Tilde
Es ist für mich aber außerordentlich wichtig, an die beiden Dateien zu kommen.
Denn in den beiden Dateien hoffe ich die Antwort auf meine Frage zu finden, wieso ein von mir erstelltes Programm die Dateien nicht richtig ablegt, wo es soll. Auf den anderen bisher getesteten Rechnern hingegen funktioniert das TADELLOS *grrrr*
@Biber: God of Batch, ich beziehe Dich auch in mein Nachtgebet ein
Lonesome Walker
edit:
Es ginge auch, wenn der Ordnerinhalt nicht mehr gelöscht werden könnte.
Nach dem Motto: reinschreiben darf mein Programm, nur rauslöschen darf keiner mehr...
Geht das???
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 38151
Url: https://administrator.de/forum/datei-kopieren-zeitraum-dafuer-aber-sehr-kurz-38151.html
Ausgedruckt am: 22.04.2025 um 08:04 Uhr
8 Kommentare
Neuester Kommentar
Moin Lonesome Walker,
das wird schwierig, fürchte ich.
Versuchen könnetest Du, mit einem Endlos-Batch diese Dateien zu sichern.
Der kleine Schnipsel unten würde, wenn er einmal gestartet ist, in einer Endlosschleife
alle vorhandenen Dateien größer 0 Byte aus einem Verzeichnis %LSWtemp% in ein Verzeichnis %LSWSik%
kopieren. Und bei den Zieldateien einen Timestamp dranhängen.
Da es kein Kriterium gibt, dass diese Endlosschleife "fertig werden" lässt, habe ich es mit einer Flag-Datei gelöst.
Der untenstehende batch müsste also so gehandhabt werden:
- wenn Dein Temp-Datei-erzeugendes Programm gestartet wird, parallel ein CMD-Fenster öffnen.
Dort eingeben:
Start /min [Pfad\]LswSaveTemps.bat
Im Hintergrund läuft jetzt der Batch und kopiert und kopiert und kopiert....
Wenn es genug ist, dann vom CMD-Prompt abschicken:
echo x>%temp%\stop
..dann endet der Batch.
[Alternativ könntest Du natürlich im Batch prüfen, ob Dein Programm noch in der Liste der laufenden Prozesse ist.
..und das als Abbruchkriterium nehmen.
Egal, hier die Rohfassung des LSWSaveTemps.bat. Das GROSSgeschriebene "@ECHO" muss wieder zum Scharfmachen gelöscht werden.
Demo am CMD-Prompt (ohne START-Schalter "/MIN", damit was zu sehen ist):
Im Hintergrund öffnet sich ein zweites CMD-Fenster, in dem endlos so etwas scrollt:
Soweit dieser Ansatz.
Allerdings fürchte ich, dass es daran scheitern wird, dass diese Tempdateien ja NEU angelegt werden und das vermutlich mit der Mimik
nHandle = FCreate(...) --->von diesem Zeipunkt an ist die Datei da, aber mit Größe 0 Byte
FWrite( nhandle,.....)
....
...
FWrite( nhandle,.....) ------------> auch wenn jetzt ganz viel geschrieben wurde: immer noch 0 Byte im Dateisystem
FClose(nHandle) -------->und erst hier hat die Datei eine Größe > 0 Byte
Es kommt also darauf an, ob die Programmierer deines Proggis den Inhalt dieser Temp-Datei anderen Programmteile als Datei zugänglich machen wollten ( dann existiert die Tempdatei mit einer Größe > 0 Byte für einen spürbaren Zeitraum) oder ob sie nur das Dateihandle weiterreichen... dann hat die Datei durchgehend bis zum FClose() eine Größe von 0 Byte und das Kopieren wird nix.
Hope That Helps
Biber
das wird schwierig, fürchte ich.
Versuchen könnetest Du, mit einem Endlos-Batch diese Dateien zu sichern.
Der kleine Schnipsel unten würde, wenn er einmal gestartet ist, in einer Endlosschleife
alle vorhandenen Dateien größer 0 Byte aus einem Verzeichnis %LSWtemp% in ein Verzeichnis %LSWSik%
kopieren. Und bei den Zieldateien einen Timestamp dranhängen.
Da es kein Kriterium gibt, dass diese Endlosschleife "fertig werden" lässt, habe ich es mit einer Flag-Datei gelöst.
Der untenstehende batch müsste also so gehandhabt werden:
- wenn Dein Temp-Datei-erzeugendes Programm gestartet wird, parallel ein CMD-Fenster öffnen.
Dort eingeben:
Start /min [Pfad\]LswSaveTemps.bat
Im Hintergrund läuft jetzt der Batch und kopiert und kopiert und kopiert....
Wenn es genug ist, dann vom CMD-Prompt abschicken:
echo x>%temp%\stop
..dann endet der Batch.
[Alternativ könntest Du natürlich im Batch prüfen, ob Dein Programm noch in der Liste der laufenden Prozesse ist.
(tasklist|find /i "myProggi.exe" >nul)|| goto :eof
Egal, hier die Rohfassung des LSWSaveTemps.bat. Das GROSSgeschriebene "@ECHO" muss wieder zum Scharfmachen gelöscht werden.
:: ---- snipp LSWSaveTemps.bat----------
@echo off & setlocal
Set "LSWtemp=d:\temp\lswtemp"
set "LSWSik=d:\temp\lswsik"
if exist %temp%\stop del %temp%\stop
:doItAgain
for /f "tokens=1-4 delims=:," %%a in ("%time%") do set mytime=%%a%%b%%c%%d
for %%i in (%lswtemp%\*.*) do if %%~zi GTR 0 @ECHO copy /y %%i "%lswsik%\%mytime%*.*"
if not exist %temp%\stop goto doItAgain
:: ---- snapp LSWSaveTemps.bat----------
Demo am CMD-Prompt (ohne START-Schalter "/MIN", damit was zu sehen ist):
$cmd$start LswSavetemps.bat
Z:\>
##### ---irgendwann später dann:
$cmd$echo.>%temp%\stop
Im Hintergrund öffnet sich ein zweites CMD-Fenster, in dem endlos so etwas scrollt:
....
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193269*.*"
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193269*.*"
copy /y d:\temp\lswtemp\New4121.ini "d:\temp\lswsik\11193272*.*"
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193272*.*"
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193272*.*"
copy /y d:\temp\lswtemp\New4121.ini "d:\temp\lswsik\11193275*.*"
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193275*.*"
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193275*.*"
copy /y d:\temp\lswtemp\New4121.ini "d:\temp\lswsik\11193280*.*"
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193280*.*"
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193280*.*"
....
Soweit dieser Ansatz.
Allerdings fürchte ich, dass es daran scheitern wird, dass diese Tempdateien ja NEU angelegt werden und das vermutlich mit der Mimik
nHandle = FCreate(...) --->von diesem Zeipunkt an ist die Datei da, aber mit Größe 0 Byte
FWrite( nhandle,.....)
....
...
FWrite( nhandle,.....) ------------> auch wenn jetzt ganz viel geschrieben wurde: immer noch 0 Byte im Dateisystem
FClose(nHandle) -------->und erst hier hat die Datei eine Größe > 0 Byte
Es kommt also darauf an, ob die Programmierer deines Proggis den Inhalt dieser Temp-Datei anderen Programmteile als Datei zugänglich machen wollten ( dann existiert die Tempdatei mit einer Größe > 0 Byte für einen spürbaren Zeitraum) oder ob sie nur das Dateihandle weiterreichen... dann hat die Datei durchgehend bis zum FClose() eine Größe von 0 Byte und das Kopieren wird nix.
Hope That Helps
Biber
Dann musste wohl nen Praktikanten (is ja grad modern...) mit einem TEMP-Dateien-Kescher
anstellen *kleiner Scherz*
Vielleicht hilft Dir dieses PC-Welt Tool: http://www.pcwelt.de/downloads/heft-cd/06-06/137147/index.html
Gruß
cykes
[EDIT] Habe hier noch ein Tool gefunden, das könnte eher helfen:
http://www.bestsoftware4download.com/software/t-free-allsync-download-a ...
bzw. http://www.allsync.biz/en_index.htm
anstellen *kleiner Scherz*
Vielleicht hilft Dir dieses PC-Welt Tool: http://www.pcwelt.de/downloads/heft-cd/06-06/137147/index.html
Gruß
cykes
[EDIT] Habe hier noch ein Tool gefunden, das könnte eher helfen:
http://www.bestsoftware4download.com/software/t-free-allsync-download-a ...
bzw. http://www.allsync.biz/en_index.htm
auch das Tool in dem [EDIT] nicht? Das erste macht glaub nur logging, wie ich vorhin festgestellt habe, das zweite ist eine Synchronisierungs-Software.
Insbesondere hat diese das Feature, wenn in dem überwachten/synchronisierten Ordner eine Datei gelöscht wird, sie im Sync-Ordner in den Papierkorb zu verschieben, wo man sie natürlich wieder rausholen kann.... Vielleicht hilft das ja ...
Insbesondere hat diese das Feature, wenn in dem überwachten/synchronisierten Ordner eine Datei gelöscht wird, sie im Sync-Ordner in den Papierkorb zu verschieben, wo man sie natürlich wieder rausholen kann.... Vielleicht hilft das ja ...