
Ich habe ein BAT-Skript unter Windows 10, das winscp.com
eine einzelne Datei aufruft und auf einen SFTP-Server im Internet hochlädt. Das Ergebnis protokolliere ich in einer XML-Datei. Die Ausgabe bei erfolgreicher Übertragung einer einzelnen Datei sieht ungefähr so aus.
<?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>
Ich kann die Datei manuell herunterladen und bestätigen, dass alles in Ordnung ist. Wie kann ich jedoch anhand des Protokolls bestätigen, dass die Übertragung erfolgreich war?
Darin gibt es zwei Elemente upload
, und touch
beide sind zurückgekehrt result success = true
Wofür stehen sie und wann gilt eine Übertragung tatsächlich als erfolgreich? Müssen dann beide Angaben True sein?
Ich bin auf diesem Gebiet völlig neu und daher ist dies möglicherweise eine sehr einfache Abfrage. Ich möchte die Datei jedoch nicht herunterladen, nur um zu überprüfen, ob die Übertragung erfolgreich war.
Mein erster Parameter für winscp.com ist die Skriptdatei und der zweite ist die XML-Datei, so etwas wie/xmllog="C:\SFTP\mylog.xml"
Antwort1
Sie müssen das XML-Protokoll nicht analysieren, um festzustellen, ob die Übertragung erfolgreich war.
Testen Sie einfach den WinSCP-Exitcode. WinSCP gibt den Exitcode 0 zurück, wenn alles gut gegangen ist, andernfalls gibt es 1 zurück.
Siehe auch WinSCP-FAQWoher weiß ich, dass das Skript erfolgreich abgeschlossen wurde?