You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bitvise SFTP批处理脚本跨服务器传输文件失败求助

Windows任务计划SFTP传输失败排查求助

需求与任务计划配置

需配置Windows任务计划完成以下操作:

  • 将Server A中D:\SFTP_Jump_Location\SPANIST路径下的文件传输至Server B
  • 将Server A上的源文件归档至D:\EMDAD\ETL_SERVER_SFTP_TRANSFER_ARCHIVE\SPANIST路径

任务计划创建时的设置:

  1. 「启动程序」窗口中批处理文件路径:
    "D:\EMDAD\SFTP_Scripts\SPANIST\NEW_SFTP_SPANIST_TO_EMDAD.bat"
    
  2. 参数定义:
    SPANIST D:\SFTP_Jump_Location\SPANIST D:\EMDAD\ETL_SERVER_SFTP_TRANSFER_ARCHIVE\SPANIST >D:\EMDAD\SFTP_Scripts\SPANIST\LOGS\SFTP_SPANIST_TO_EMDAD_Detail_%date:~6,4%%date:~3,2%%date:~0,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.log '
    

问题现象

批处理脚本中的sftpc步骤执行失败。已验证Bitvise用户名和密码有效,手动分步执行代码时能成功完成认证,但通过任务计划运行时无法将文件传输至Server B。

批处理脚本代码

set "Pattern=%~1"
set "Src_Path=%~2" 
set "Arc_Path=%~3"

set "CurrentDate=" & for /F "tokens=1-6 delims=/: " %%G in ('%SystemRoot%\System32\robocopy.exe "%SystemDrive%\|" . /NJH') do if not defined CurrentDate set "CurrentDate=%%G%%H%%I" & set "CurrentTime=%%J%%K%%L"

set "LogFileName=D:\EMDAD\SFTP_Scripts\SPANIST\SFTP_%Pattern%_TO_EMDAD_%CurrentDate%CurrentTime%"

echo %DATE% %TIME% Starting process
echo %DATE% %TIME% Changing directory to "%Src_Path%\%CurrentDate%">"%LogFileName%"
pushd "%Src_Path%\%CurrentDate%" || (echo Failed!>>"%LogFileName%" & popd & exit /B 1)

echo %DATE% %TIME% Starting transfer (copy/sftp)>>"%LogFileName%" 
"C:\Program Files (x86)\Bitvise SSH Client\sftpc.exe" prod_emdad_spanist@10.2.173.3 -pw=Emdad123 -cmd="put %Src_Path%\%CurrentDate%\%Pattern%*"


if not errorlevel 1 goto ARCH

echo %DATE% %TIME% ERROR: Issue in transferring the files to ETL server>>"%LogFileName%"

:ARCH
move "%Src_Path%\%CurrentDate%" "%Arc_Path%\"

if  not errorlevel 1 goto NEXT
echo %DATE% %TIME% ERROR: Error in archiving files!>>"%LogFileName%"
popd & exit /B 1

:NEXT  
echo "%DATE% %TIME% Files transferred and archived successfully.>"%LogFileName%"

popd & endloca

任务计划XML内容

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2024-07-08T18:11:59.5154495</Date>
    <Author>SJN\emdadetprd</Author>
    <URI>\NEW_PROD_EMDAD_SPANIST_SFTP</URI>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2024-07-08T16:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-21-3895855529-3008202435-1737094514-1599</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>"D:\EMDAD\SFTP_Scripts\SPANIST\NEW_SFTP_SPANIST_TO_EMDAD.bat"</Command>
      <Arguments>SPANIST D:\SFTP_Jump_Location\SPANIST\DAT D:\EMDAD\ETL_SERVER_SFTP_TRANSFER_ARCHIVE\SPANIST</Arguments>
      <WorkingDirectory>D:\EMDAD\SFTP_Scripts\SPANIST\</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

恳请协助排查问题原因并提供解决方案。


内容的提问来源于stack exchange,提问作者Afzaal Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:14:51