Topic "Keepuptodate 2 session 1 screen & Errorlevel option batch on"

Author Message
[View user's profile]

Joined: 2012-12-17
Posts: 8
I currently used WinSCP Version 5.1.2 both GUI/Window Batch Script

I store a session in ini file and used it call from my batch script to do Keepuptodate features.

First Problem: I have configured Option Batch On, so that if error will skip it, my Keepuptodate commands will always monitor and running. But I want to handle If folder exists in Remote directory no need to mkdir. If fail to detect errorlevel if Option Batch are set to On. No matter which method in approaches (such as If errorlevel 1 goto error, If exist folder path do keeuptodate else mkdir only). The result always call mkdir because it cannot detect the errorlevel neither if folder exist in remote path.

Second Problem: I noticed that WinSCP GUI can open multiple sessions at 1 Winscp GUI screen, but if you are doing Keep Remote directory up to date features..It will only work at 1 session at a time. I believe it will be the same if you apply to scripting. Winscp does support up to 9 session transfer at background, is that not support for Keepuptodate features?
[View user's profile]

Joined: 2012-12-17
Posts: 8
I include my coding and testing coding.

@echo off

rem Settings.
rem Server Login
set session=AutoFTP1

rem Folder Settings.
set ftp_path=/homedir/homedata/
rem set monitor_path=C:\tempdata\
FOR /F "usebackq tokens=2 delims==" %%a IN ("%winscp_path%pathConfig.txt") do (
set monitor_path=%%a

rem Path to winscp.
set winscp_path=C:\Program Files (x86)\WinSCP\

rem Log File 1 or 0.
set logfile=1
rem set filename=%date:~0,2%%date:~3,2%%date:~6,6%_FTPLogs
set filename=SFTPLogs

FOR /F "usebackq tokens=1-5 delims=," %%a IN ("%winscp_path%machineFileType.txt") do (
set mfileType=%%e

echo %errorlevel%
If exist script.tmp del script.tmp
rem echo > %filename%.txt
echo option batch on >> script.tmp
echo option confirm off >> script.tmp
echo open %session% >> script.tmp
echo option transfer binary >> script.tmp
echo dir "%ftp_path%%mfileType%" >nul 2>nul >> script.tmp
If errorlevel 1 (echo No Error) else (echo Error Found!)
rem echo mkdir "%computername%" >> script.tmp
rem echo mkdir "%ftp_path%%mfileType%/%computername%/" >> script.tmp
rem echo keepuptodate %monitor_path% "%ftp_path%%mfileType%/%computername%/" >> script.tmp

echo exit >> script.tmp
IF "%logfile%"=="1" (set filelog=/xmllog=%filename%_!M!D!Y.xml)
"" /script=script.tmp %filelog% /xmlgroups

I want to write a batch scritp if Remote FTP Folder Exist, just keepuptodate, else folder does not exist mkdir first, otherwise in xml logs always shown Error Creating folder although my keepuptodate still running.
No matter errorlevel is 0 or 1, it always print Error Found!.
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 26890
Location: Prague, Czechia
Duplicate post:

You can post new topics in this forum


What is WinSCP?

It is award-winning SFTP client, SCP client, FTPS client and FTP client integrated into one software program for file transfer to FTP server or secure SFTP server. [More]

And it's free!


About donations

$9   $19   $49   $99

About donations


WinSCP Privacy Policy

WinSCP License