In diesem Abschnitt findest du Information zu
Ein Beispielhaftes Skirpt zum Umformatieren einer Datei und dem Upload über WINSCP
Die Software WINSCP (hier zum Download) hat eine Schnittstelle zu Powershell.
Das heißt, dass man eine mögliche CSV-Datei Formatierung und den Upload auch über ein Skript laufen lassen kann und damit letztendlich automatisieren.
Im folgenden findest Du beispielhaft ein Skript welches Du als Grundlage nutzen könntest.
Hast Du Fragen, kannst Du uns jederzeit kontaktieren.
Bei Bedarf entwicklet und Easy Connect Team das Skript für Dich.
#Lade die WinSCP .NET Assembly
Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll" # eigene Pfad hier einfügen
# Definiere die Pfade und Zugangsdaten
$LocalFile = " C:\Users\exampleName\Example\ExampleFile.csv” # Pfad der CSV-Datei hier einfügen
$RemoteHost = "31.24.145.67"
$Port = 2022
$Username = "UsernameXXXXX" # eigenen Usernamen einfügen
$Password = "PasswordXXXXX" # eigenes Passwort einfügen
$RemotePath = "/" # Kein spezifisches Verzeichnis, daher Root-Verzeichnis
$LogFile = "C:\Users\exampleName\Desktop\WinSCP_Upload.log" # Ort für LogFile kann eigenständig bestimmt werden
# Erstelle eine neue WinSCP Session
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = $RemoteHost
PortNumber = $Port
UserName = $Username
Password = $Password
SshHostKeyPolicy = [WinSCP.SshHostKeyPolicy]::GiveUpSecurityAndAcceptAny
}
$session = New-Object WinSCP.Session
try {
# Starte die Sitzung
$session.Open($sessionOptions)
# Starte die Dateiübertragung
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
# Setze $False, damit die Datei nach dem Upload nicht gelöscht wird
$transferResult = $session.PutFiles($LocalFile, $RemotePath, $False, $transferOptions)
# Überprüfe das Ergebnis
if ($transferResult.IsSuccess) {
Write-Host "Upload erfolgreich!"
} else {
Write-Host "Fehler beim Upload!"
}
# Schreibe Log
$transferResult.Transfers | ForEach-Object { $_.FileName } | Out-File -FilePath $LogFile
} catch {
Write-Host "Fehler: $_"
} finally {
$session.Dispose()
}