Um einen errorlevel1 zu erhalten, denke ich, Sie können nur eine Dateiquelle haben, die dort nicht vorhanden ist.
Kann ein `errorlevel 1` von` xcopy` unter Windows 10 abgerufen werden?
Die Microsoft- Dokumentation gibt an, dass es sich bei den xcopy
Exit-Codes handelt
Exit code Description 0 Files were copied without error. 1 No files were found to copy. 2 The user pressed CTRL+C to terminate xcopy. 4 Initialization error occurred. There is not enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line. 5 Disk write error occurred.
Ich bin ein Windows 10 64 - Bit - System (spanisch locale), und ich habe alles versucht, mir zu bekommen, ein einfiel errorlevel 1
aus xcopy
, aber ich habe nicht in der Lage gewesen. Und mit allem, was ich meine, war das einzige, was ich nicht getestet habe, /N
lange Dateinamen in einer Quelle, in denen kurze Namen nicht aktiviert sind (in meiner Umgebung kann ich es nicht testen). Die üblichen Verdächtigen nicht passenden Platzhalter, nicht vorhanden Dateinamen, leere Ordner, /D
, /EXCLUDE
, /A
, /M
, /U
, ... getestet wurden.
Ich sollte zwar einfach sein (keine Dateien gefunden?, Einfach), aber ich habe mich geirrt, das war nicht der Fall, also habe ich debugiert xcopy.exe
und das ist, was ich gesehen habe:
xcopy
verwendet intern eine Methode, die aufgerufenDisplayMessageAndExit(messageID, WSTRING, exitCode)
wird, um eine Nachricht anzuzeigen und zu beenden. Es verwendet auch mehrereexit
Aufrufe, um das Programm in einigen Fällen zu verlassen (Bsp. Ctrl-C)Ich habe keinen
exit
Aufruf gefunden, der einen Wert von verwenden könnte1
Aus der Liste der Anrufe, an die ein Anruf getätigt wurde,
DisplayMessageAndExit
wird kein Wert1
als Beendigungscode übergeben.DisplayMessageAndExit
Verwenden Sie aus der Liste der Anrufe, an die nur einer von ihnen getätigt wurde, die MessageID0x5622
(in meiner Installation befinden sich die zugeordneten Ressourcen inC:\Windows\System32\es-ES\ulib.dll.mui
Abhängigkeit vom Gebietsschema), d. H.No se encuentra el archivo: %1
(File not found - %1
), Und der Exit-Code, der beim Aufruf verwendet wird4
Vielleicht gibt es eine Möglichkeit xcopy
, den 1
Exit-Code zu generieren, aber ich weiß nicht wie.
Die Frage ist also: Gibt es eine Möglichkeit, den errorlevel 1
Exit-Code zu erhalten xcopy
? Was vermisse ich?
2 Antworten auf die Frage
Das Einzige, woran ich denken kann, ist eine Art Rassenbedingung: Zwischen dem Kopieren der Liste der Dateien durch xcopy und dem Kopieren der Dateien löscht oder verschiebt ein anderer Prozess die Dateien.
Wenn Sie einen Fehler 1 erhalten können, wenn nur einige der Quelldateien fehlen, kann dies möglicherweise absichtlich geschehen. Die einzige Möglichkeit, die ich absichtlich tun kann, ist, zwei oder mehr separate Prozesse auszuführen, einen xcopy- und einen Lösch- oder Verschiebungsbefehl, die alle die gleichen Quelldateien ausführen. Sie benötigen eine Quelle mit vielen Dateien, um den konkurrierenden Prozessen Zeit zu geben, sich gegenseitig zu überholen.
- Starten Sie einen Move-, Del- oder Robocopy / Mov-Befehl in einem Ordner, in dem sich viele Dateien befinden.
- in einem anderen Fenster und lange bevor der erste Befehl beendet ist, starten Sie den Befehl xcopy
Wenn Sie die Option / C nicht angeben, kann dies bedeuten, dass xcopy versucht, die erste Datei abzubrechen, ohne dass eine Datei kopiert wird, und die Bedingung der kopierten NO-Dateien erfüllt.
Verwandte Probleme
-
12
Warum wird der Ordner / winsxs so groß und kann er verkleinert werden?
-
2
Erhöhte Berechtigungen für Startanwendungen in Windows?
-
14
PDF Viewer unter Windows
-
7
Welche Windows-Dienste kann ich sicher deaktivieren?
-
8
Firefox PDF-Plugin zum Anzeigen von PDF-Dateien im Browser unter Windows
-
1
Windows verliert das Bildschirmlayout
-
1
Gibt es eine Möglichkeit, Installationen / Updates zu verhindern, die meine Festplatte mit kryptisch...
-
1
Wie kann ich von Ubuntu aus über das Netzwerk auf Windows Vista-Drucker zugreifen?
-
6
Log Viewer unter Windows
-
3
Windows-Hintergrundproblem mit zwei Bildschirmen