
У меня есть скрипт BAT на Windows 10, который вызывает winscp.com
и загружает один файл на SFTP-сервер в Интернете. Я регистрирую результат в XML-файле. Вывод при успешной передаче одного файла выглядит примерно так.
<?xml version="1.0" encoding="UTF-8"?>
<session xmlns="http://winscp.net/schema/session/1.0" name="[email protected]" start="2020-02-08T10:04:41.012Z">
<upload>
<filename value="c:\sftp\test.txt" />
<destination value="/Data/test.txt" />
<result success="true" />
</upload>
<touch>
<filename value="/Data/test.txt" />
<modification value="2020-02-08T03:52:28.000Z" />
<result success="true" />
</touch>
</session>
Я могу вручную загрузить файл и убедиться, что с ним все в порядке, но как, посмотрев журнал, убедиться, что передача прошла успешно?
В нем есть два элемента upload
, и touch
оба вернулись. result success = true
Что они обозначают и когда передача фактически считается успешной? Должны ли оба значения быть True в этом случае?
Я полный новичок в этом деле, и поэтому это может быть очень простой вопрос, однако я не хочу загружать файл только для того, чтобы убедиться, что передача прошла успешно.
Мой первый параметр для winscp.com — это файл скрипта, а второй — XML-файл, что-то вроде/xmllog="C:\SFTP\mylog.xml"
решение1
Вам не нужно анализировать XML-журнал, чтобы определить, была ли передача успешной.
Просто проверьте код выхода WinSCP. WinSCP возвращает код выхода 0, если все прошло успешно, в противном случае он возвращает 1.
См. также часто задаваемые вопросы по WinSCPКак я узнаю, что сценарий успешно выполнен?