2012-03-30 3 views
1

Ich habe ein Windows-Batch-Skript, das ich verwenden, um ein Modul zu erstellen, und das Skript verwendet wiederum den Befehl ClearCase clearmake, um die tatsächlichen Compilations, Verzeichnis-Erstellung und Dateimanipulationen, d. H. Den Makefile-Inhalt zu verarbeiten. Das Batch-Skript funktioniert einwandfrei, wenn es über ein DOS-Fenster oder über einen Befehlszeilenaufruf "cmd/c ..." aufgerufen wird. Und das ist seit einigen Jahren so.Windows, ClearCase und Ant: Wie wird mit Verzeichnisstrichen verfahren?

Ich habe vor kurzem beschlossen, das Skript zu Ant zu verschieben. Der erste Schritt bestand darin, einfach aus der Einfachheit heraus das Skript unter Verwendung einer Exec Aufgabe (unter Verwendung von cmd /c) unverändert aufzurufen. Fast sofort schlägt Ant beim Erstellen eines Verzeichnisses fehl. Die Fehlermeldung meldet, so etwas wie:

mkdir: Cannot create the directory C:\\fred\\harry\\joe

ich in der Lage war, das zu überprüfen, die DOS-Eingabeaufforderung, der mkdir C:\\fred\\harry\\joe Befehl funktioniert gut, so, so nah wie ich bisher sagen kann, Ant Doppel Backslash Erzeugen Pfadtrennzeichen kombiniert mit etwas inhärent clearmake und/oder etwas im Makefile verursacht den Fehler.

Die Antwort, die ich suche ist etwas entlang der Linien: „Ja, clearmake ist auf jeden Fall der Täter, weil ...“ oder „Wenn Sie diese Sache twiddle oder das Ding in Ant nur ein einziger Backslash generiert werden ... ". Sollte es keine einfache und schnelle Erklärung geben, werde ich das Problem genauer untersuchen, um herauszufinden, was genau den Fehler verursacht.

Danke,

Antwort

0

ich mit ähnlichen Fehler gesehen haben:

  • dynamische Ansichten (sinnvoller Besitz als eine Momentaufnahme auf C: \, das ist Ihr Fall)
  • Konflikt Ressourcenhandle (Das Skript versucht eine Ressource zu aktualisieren, die bereits von einem anderen Prozess ausgeführt wurde. Dies sollte hier nicht mit Ihrem Skript der Fall sein, da es außerhalb von Ant Exec-Task ausgeführt wurde.)
  • Fehlermeldung (wie Sie ein Verzeichnis erstellen, das bereits vorhanden ist : Der Fehler wird angezeigt in einem klassischen Skript ignoriert, während es die Ameisenaufgabe unterbrechen könnte.

Während die letzte Ursache einen guten Kandidat ist, versuchen Sie zunächst das Skript zu vereinfachen (lassen Sie nur die mkdir zum Beispiel), um, dass diese Linie zu prüfen, ist in der Tat das Problem (nd nicht „diese Linie in Verbindung mit anderen Aktionen stattfinden kurz bevor ")