Я перемещаю файлы из локального каталога в удаленный с помощью этого командного файла. Я могу переместить файл без проблем. Удаленный каталог - это интерфейс, который обрабатывает файл примерно за час. Что я не могу сделать, так это прочитать файл из удаленного каталога, когда он там есть. Я хочу, чтобы программа выполняла цикл до тех пор, пока файл не исчезнет в папке, а не обрабатывал следующий файл.
SET LOCAL ENABLEEXTENSIONS
SET LOCAL ENABLEDELAYEDEXPANSION
SET Wave=3
SET WaveDesc=Wave%Wave%Documents
SET Ext=1
SET PadExt=001
SET Practice=xxx
:LOOP
SET FileName=%Practice%_NoConvert_%PadExt%.zip
echo FileName %FileName%
SET Desktop=C:\Users\xxxxxxxxx\Desktop
SET Src_Dir=D:\ChartMaxx\Sent_to_ChartMaxx\%WaveDesc%\%Practice%\Zipped_Folders\
SET Dest_Dir=/xxxxx/xxxxx/%WaveDesc%/%Practice%/
chdir /d %Desktop%
IF EXIST WinSCP.log DEL WinSCP.log
chdir /d %Src_Dir%
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Users\tdonahue\Desktop\WinSCP.log" /ini=nul ^
/command ^
"open sftp://xxxxxxx:xxxxxx.xxxxxxx.org/ -hostkey=""ssh-ed25519 xxx xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx""" ^
"lcd %Src_Dir%" ^
"cd %Dest_Dir%" ^
"option transfer binary" ^
"put -resumesupport=on %FileName%" ^
"close" ^
"exit"
set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)
pause
echo %WINSCP_RESULT%
echo after winscp
pause
:SkipWinscp
@REM Check if file still exists
:FOLDERCHECK
echo Directory %Dest_Dir%
pause
chdir /d cd %Dest_Dir%
echo %Dest_Dir%
pause
SET FileCheck=%Dest_Dir%%FileName%
pause
IF EXIST %FileCheck% GOTO:LOOPAGAIN
IF NOT EXIST %FileCheck% GOTO:ADDCOUNT
:LOOPAGAIN
echo at Loopagain
pause
echo Folder %FileCheck% still exists waiting till it is gone
echo waiting 15 sceonds
timeout /t 15
IF EXIST %FileCheck% GOTO:LOOPAGAIN
pause
:ADDCOUNT
echo at add count
pause
if %Ext% LEQ 9 SET PadExt=00%Ext%
IF %Ext% GEQ 10 if %Ext% LEQ 99 SET PadExt= 0%Ext%
SET /A Ext= %Ext%+1
GOTO:LOOP
:END
pause