{title}

Ich habe eine Batch-Datei, die denselben Befehl mehrmals ausführt und die Ausgabe in eine Textdatei umleitet. Das hat früher einwandfrei funktioniert. Nach der ersten Ausführung wird angezeigt, dass die Datei von einem anderen Prozess verwendet wird. Ich habe die Batch-Datei ausgeführt, ohne die Ausgabe umzuleiten, und es funktioniert. Es scheint also auf den Operator ">" beschränkt zu sein. Warum hält das meine Datei offen? Und wie behebe ich das? Beispiel: foo.exe> ​​bar.txt> bar.txtfoo.exe >> bar.txtfoo.exe >> bar.txtfoo.exe >> bar.txtfoo.exe >> bar.txt

Auf den ersten Blick scheint nichts falsch zu sein. Welches Betriebssystem verwenden Sie? Welches Programm repräsentiert FOO.EXE? Ist FOO einheimisch oder Teil eines kommerziellen Produkts oder wird es aus dem Internet heruntergeladen? Weitere Infos benötigt. 8-) Nach 25 Jahren kann man mit Sicherheit sagen, dass der Umleitungscode von Microsoft relativ stabil ist.

Das Betriebssystem ist XP Pro. Foo.exe ist ein Programm, das Informationen von einem proprietären externen Gerät abruft und an die Standardausgabe ausgibt. Meines Wissens berührt es keine Dateien. Meine aktuelle Lösung besteht darin, zwischen den einzelnen Aufrufen einige Millisekunden zu schlafen, aber bei genügend Iterationen ist dies sehr zeitaufwändig.

Mein Vorschlag wäre gewesen, die Batch-Datei zwischen den Programmaufrufen in den Ruhezustand zu versetzen, da ich vermute, dass dies ein Zeitproblem ist. Sie haben erwähnt, dass dies früher funktioniert hat. Was hat sich geändert? OS? Codeänderung zu FOO? Ich vermute, dass FOO die DOS-Funktionen nicht für die Ausgabe verwendet. Außerdem ist mir nur bewusst, dass die Umleitung für die Ausgabe auf die Konsole und nicht auf den Drucker bestimmt war. Vielleicht kommt jemand mit anderen Ideen vorbei.

Hmm. Früher hat es funktioniert, und dann haben wir die Box auf die Werkseinstellungen zurückgesetzt. Ich denke, deine beste Vermutung ist richtig. Foo.exe wurde ursprünglich für UNIX geschrieben und dann auf Windows portiert. Wenn man sich den Code ansieht, sieht es so aus, als ob er auf einigen UNIX-Bibliotheken basiert, auf die ich keinen Zugriff habe, aber die Ausgabe erfolgt über printf, was die Konsole wäre, oder? Sollte eine Batch-Datei nicht bis zum Prozess warten? kehrt zurück, bevor Sie mit dem nächsten Befehl fortfahren? Vielen Dank für Ihre Hilfe.

Theoretisch ja. Anscheinend hat diese umgeleitete Ausgabedatei keine Verbindung zu FOO und es ist Windows, das die umgeleitete Datei aufgrund des Verweises auf den Programmaufruf öffnet und es ist Windows, das sie schließt, aber nicht sofort darauf zugreift. Dies würde erklären, dass die Datei geöffnet ist, wenn das nächste FOO startet. Nur ein Gedanke. 8-)

Würden die bedingten Verarbeitungssymbole & oder && von Nutzen sein: Hier.

Am Ende war es explorer.exe, die die Datei geöffnet hatte. Wenn im Hintergrund ein Fenster mit dem enthaltenen Ordner geöffnet ist, überprüft Windows die Datei anscheinend jedes Mal, wenn sie aktualisiert wird, und übernimmt die Kontrolle über die Datei. Wenn alle Explorer-Fenster geschlossen sind, funktioniert es wieder. Vielen Dank für Ihre Hilfe

Deltree funktioniert nicht

Ich mache eine All-in-One-DVD für meinen Computer, um das Betriebssystem und andere Programme zu laden, die installiert werden. Ich habe das meiste davon funktioniert, aber ich kann den Deltree-Befehl nicht zum Laufen bringen. Nach der Installation kopiert der Runonce die Ordner von der DVD in die Ordner C: Windows Temp und installiert von dort aus. Nach der Installation möchte ich alle Ordner im Ordner. Temp löschen, aber wenn ich versuche, sie zu löschen, erhalte ich die folgenden Meldungen: deltree c: windows temp - 'deltree' ist nicht Wird als interner oder externer Befehl, als ausführbares Programm oder als Batch-Dateiverzeichnis erkannt. c: windows temp - Das Verzeichnis wird nicht gelöscht. c: windows temp - c: windows temp . Sind Sie sicher, dass (J/N) Ich drücke y, aber ich habe eine.tmp- und eine.dat-Datei im temporären Ordner, auf die von einem anderen Prozess zugegriffen wird (ich habe bereits einen Neustart versucht), nachdem diese Meldung nichts passiert. Die anderen Ordner bleiben bestehen. Hat jemand Ideen zum Löschen aller Dateien im Ordner. temp ?

Deltree ist in NT-Systemen nicht verfügbar. Verwenden Sie Del.Some-Anwendungen, z. B. eine Firewall, verwenden ständig temporäre und temporäre Dateien. Daher können diese Dateien nicht gelöscht werden, ohne zuvor die Anwendungen zu schließen. Unten ist ein Beispiel für den Versuch, alle temporären Dateien auf meinem System zu löschen.

Beliebte Beiträge