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 kopieren, Zeitraum dafür aber sehr kurz

Frage Entwicklung

Mitglied: 16568

16568 (Level 4)

17.08.2006, aktualisiert 18.08.2006, 6917 Aufrufe, 8 Kommentare

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???
Mitglied: cykes
17.08.2006 um 07:28 Uhr
Hi,

so eine spontane Idee, vielleicht kannst Du beim Starten Deine Programms
einfach die Task Priorität runterschrauben, so daß es etwas langsamer läuft.
Oder lass doch mal den Debugger Schritt-für-Schritt drüberlaufen (ist bei grossen
Projekten sicher nervig, aber manchmal geht's ned anders)

Gruß

cykes
Bitte warten ..
Mitglied: Supaman
17.08.2006 um 08:54 Uhr
könnte man das nicht über dateirechte lösen? soweit ich weis, gibt es für lesen, erstellen, ändern und löschen einzeln zu vergebende rechte.. also für den user der das programm ausführt bzw den ordner die löschen-rechte entfernen.
Bitte warten ..
Mitglied: 16568
17.08.2006 um 10:46 Uhr
@cykes: LOL, das Debuggen hat er direkt abgebrochen; ich liebe VS 2005...
@Supaman: Nein, das läßt sich so nicht lösen, denn dann wird zwar die Datei gerade noch erstellt, die bleibt dann aber leer. Ich habe aber schon gesehen, daß die 3kB groß war.


Lonesome Walker
Bitte warten ..
Mitglied: Biber
17.08.2006 um 11:52 Uhr
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.
01.
(tasklist|find /i "myProggi.exe" >nul)|| goto :eof
..und das als Abbruchkriterium nehmen.

Egal, hier die Rohfassung des LSWSaveTemps.bat. Das GROSSgeschriebene "@ECHO" muss wieder zum Scharfmachen gelöscht werden.


01.
:: ---- snipp LSWSaveTemps.bat---------- 
02.
@echo off & setlocal 
03.
Set "LSWtemp=d:\temp\lswtemp" 
04.
set "LSWSik=d:\temp\lswsik" 
05.
if exist %temp%\stop del %temp%\stop 
06.
:doItAgain 
07.
for /f "tokens=1-4 delims=:," %%a in ("%time%") do set mytime=%%a%%b%%c%%d 
08.
for %%i in (%lswtemp%\*.*) do if %%~zi GTR 0 @ECHO copy /y %%i "%lswsik%\%mytime%*.*" 
09.
if not exist %temp%\stop goto doItAgain 
10.
:: ---- snapp LSWSaveTemps.bat----------
Demo am CMD-Prompt (ohne START-Schalter "/MIN", damit was zu sehen ist):
01.
$cmd$start LswSavetemps.bat 
02.
Z:\> 
03.
##### ---irgendwann später dann: 
04.
$cmd$echo.>%temp%\stop
Im Hintergrund öffnet sich ein zweites CMD-Fenster, in dem endlos so etwas scrollt:
01.
.... 
02.
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193269*.*" 
03.
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193269*.*" 
04.
copy /y d:\temp\lswtemp\New4121.ini "d:\temp\lswsik\11193272*.*" 
05.
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193272*.*" 
06.
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193272*.*" 
07.
copy /y d:\temp\lswtemp\New4121.ini "d:\temp\lswsik\11193275*.*" 
08.
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193275*.*" 
09.
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193275*.*" 
10.
copy /y d:\temp\lswtemp\New4121.ini "d:\temp\lswsik\11193280*.*" 
11.
copy /y d:\temp\lswtemp\New25293.ini "d:\temp\lswsik\11193280*.*" 
12.
copy /y d:\temp\lswtemp\New20136.ini "d:\temp\lswsik\11193280*.*" 
13.
....
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
Bitte warten ..
Mitglied: 16568
17.08.2006 um 15:27 Uhr
Danke Biber.

Folgende Situation:

Das Prog habe ich selbst geschrieben
Von daher bin ich bald am Ausrasten, weil es eben nur auf meiner Kiste die temporäre Datei erzeugt, anstelle direkt im richtigen Verzeichnis, wie ich's eigentlich festgelegt hatte.

Die Datei ist je nach verarbeiteter Datenmenge mal größer als 1-2kB, mal kleiner...
Ich habe gestern/heute morgen eine laaange Batch erstellt, nach dem Motto copy C:\temp\*.* C:\temp\copy\*.*

Hat wunderbar funktioniert, bis auf den Fehler, daß auf die Datei gerade nicht zugegriffen werden kann, weil sie gerade von einem anderen Prozeß verwendet wird.

Das VS2005 habe ich auch neu installiert, trotzdem ist ein Debuggen unmöglich (einmal sogar einen Bluescreen *ironisch-freu*)

Im Endeffekt sollte nur eine Textdatei mit einem bestimmten Inhalts-Format erstellt werden, und dies in einem vordefinierten Ordner (logisch, mein Applikationsordner).
Überall anders wird die Datei zuerst im Applikationsordner angelegt, dann mit Inhalt gefüllt, dann geschlossen.
Nur bei mir hier zickt er rum.

Da ich eine zukünftige Funktionalität aber gerne bestätigt hätte, würde ich dem Problem gerne auf den grunud gehen.

Das mit Ordner-Berechtigung habe ich schon längst durch, der erstellt dann die Datei, kann aber nix mehr reinschreiben *mistaberauch*


Lonesome Walker
Bitte warten ..
Mitglied: cykes
18.08.2006 um 08:43 Uhr
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
Bitte warten ..
Mitglied: 16568
18.08.2006 um 10:14 Uhr
Das mit dem Praktikanten: IDEE!!!

Das Tool is zwar lustich, weils funktioniert; aber es kann mir die Datei auch nicht kopieren


Trotzdem danke.

Lonesome Walker
PS: *praktikantensuch*
Bitte warten ..
Mitglied: cykes
18.08.2006 um 10:47 Uhr
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 ...
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

Ähnliche Inhalte
Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

C und C++
gelöst In einer Windows Form Anwendung per Button eine Datei kopieren (4)

Frage von Knuefi zum Thema C und C ...

Batch & Shell
gelöst Powershell Datei kopieren mit ACL Script funktioniert nicht (4)

Frage von xpxy15 zum Thema Batch & Shell ...

Batch & Shell
Batch: Word Datei kopieren und umbennen (9)

Frage von ExcelNoob177 zum Thema Batch & Shell ...

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

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

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 ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...