WinScp - 难以处理错误值
WinScp - Difficulty with handling error values
我正在尝试编写一个简单的 winscp 脚本以在批处理文件中的 for 循环中使用它。循环是:
for /F "tokens=2 delims==" %%s in ('set REMOTE_PATH[') do ("
ECHO CHECKING FOR %%s
winscp.exe /console /script=run01test1 /parameter // %%s
IF %ERRORLEVEL% neq 0 (
ECHO FILE %%s DOES NOT EXIST
CALL:error10 "76" "UNABLE TO LOCATE TARGET FILE %%s "
CALL:ERRORNOTIFYMAIL "UNABLE TO LOCATE TARGET FILE %%s" "FATAL" "CHECK EXISTENCE OF TARGET DIRECTORY" "77"
EXIT /B 10
) ELSE (
ECHO FILE %%s EXISTS
)
ECHO.
)
run01test1 winscp 脚本是:
open sftp://xxx:xxx@xx.xx.xx.xx
stat "%1%"
exit
我的问题是,它要么没有正确传递参数,要么由于某种原因,无论命令 stat 是否成功,return 值总是 return 为零。作为记录,想法是检查文件是否存在,文件以 :
的样式存储在数组中
set remote_path[0]
set remote_path[1]...
有人可以帮忙吗?提前致谢
你有一个 和你的 %errorlevel%
变量。
使用 setlocal enabledelayedexpansion
启用延迟扩展并在代码块中使用 !errorlevel!
,或者使用替代语法:
if errorlevel 1 (...
检查 errorlevel
是否为 1 或更高 。 (有关说明,请参阅 if /?
)
我正在尝试编写一个简单的 winscp 脚本以在批处理文件中的 for 循环中使用它。循环是:
for /F "tokens=2 delims==" %%s in ('set REMOTE_PATH[') do ("
ECHO CHECKING FOR %%s
winscp.exe /console /script=run01test1 /parameter // %%s
IF %ERRORLEVEL% neq 0 (
ECHO FILE %%s DOES NOT EXIST
CALL:error10 "76" "UNABLE TO LOCATE TARGET FILE %%s "
CALL:ERRORNOTIFYMAIL "UNABLE TO LOCATE TARGET FILE %%s" "FATAL" "CHECK EXISTENCE OF TARGET DIRECTORY" "77"
EXIT /B 10
) ELSE (
ECHO FILE %%s EXISTS
)
ECHO.
)
run01test1 winscp 脚本是:
open sftp://xxx:xxx@xx.xx.xx.xx
stat "%1%"
exit
我的问题是,它要么没有正确传递参数,要么由于某种原因,无论命令 stat 是否成功,return 值总是 return 为零。作为记录,想法是检查文件是否存在,文件以 :
的样式存储在数组中set remote_path[0]
set remote_path[1]...
有人可以帮忙吗?提前致谢
你有一个 %errorlevel%
变量。
使用 setlocal enabledelayedexpansion
启用延迟扩展并在代码块中使用 !errorlevel!
,或者使用替代语法:
if errorlevel 1 (...
检查 errorlevel
是否为 1 或更高 。 (有关说明,请参阅 if /?
)