Документация Microsoft гласит, что коды выхода xcopy
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.
Я использую 64-битную систему Windows 10 (испанский язык) и перепробовал все, что мог, чтобы получить уровень errorlevel 1
от xcopy
, но я не смог. И под всем, что я имею в виду, единственное, что я не проверял, это /N
с длинными именами файлов в источнике, где короткие имена не разрешены (в моей среде я не могу это проверить). Обычные подозрения: были проверены несоответствующие символы подстановки, отсутствующие имена файлов, пустые папки, /D
, /EXCLUDE
, /A
, /M
, /U
, ....
Я, хотя это должно быть легко (не файлы найдены ?, легко), но я был неправ, это не так, поэтому я отладил xcopy.exe
и вот что я увидел:
xcopy
внутренне использует метод с именемDisplayMessageAndExit(messageID, WSTRING, exitCode)
для отображения сообщения и выхода. Он также использует несколько вызововexit
для выхода из программы в некоторых случаях (например, Ctrl-C)Я не нашел ни одного вызова
exit
который мог бы использовать значение1
Из списка вызовов, сделанных в
DisplayMessageAndExit
, ни один из них не передает / получает значение1
качестве кода выхода.Из списка обращений к
DisplayMessageAndExit
только один из них использует MessageID0x5622
(в моей установке связанные ресурсы находятся вC:\Windows\System32\es-ES\ulib.dll.mui
, это зависит от локали), то естьNo se encuentra el archivo: %1
(File not found - %1
), и код выхода, использованный в вызове, равен4
Может быть, есть способ, с помощью которого xcopy
может генерировать код выхода 1
, но я не знаю как.
Итак, вопрос: есть ли способ получить код выхода уровня errorlevel 1
из xcopy
? Что мне не хватает?