Automate file transfers (or synchronization) to FTP server or SFTP serve
Script.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
@echo off :: log folder SET Folder="C:\var\log\" IF EXIST %Folder%*.txt ( rem file exist :: ECHO %F% is existing echo y| move %Folder%*.txt %Folder%temp\ winscp.com /ini=nul /script=C:\"Program Files (x86)"\WinSCP\Log_SFTP.txt if %ERRORLEVEL% neq 0 goto error echo Success :: echo y| del %Folder%temp\*.txt echo y| move %Folder%temp\*.txt %Folder%log\ exit /b 0 :error echo Error! echo "Error............" exit /b 1 ) |
Log_SFTP.txt
1 2 3 4 5 6 7 8 |
# Connect to SFTP server using a password open sftp://ID:Password@111.222.222.222:2525 -hostkey="ssh-ed25519 256 **********************************=" # Upload file put %Folder%temp\*.txt /서버폴더경로/ # Exit WinSCP exit |
예제 2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
@echo off :: log folder SET Folder="D:\Log" SET yyyymmdd=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2% IF EXIST %Folder%\%yyyymmdd%\*.xml ( rem file exist :: ECHO %F% is existing echo y| move %Folder%\%yyyymmdd%\*.log %Folder%\Temp\ winscp.com /ini=nul /script=C:\"Program Files (x86)"\WinSCP\Log_SFTP.txt if %ERRORLEVEL% neq 0 goto error echo Success :: echo y| del %Folder%temp\*.txt echo y| move %Folder%\Temp\*.log %Folder%\Log\ exit /b 0 :error echo Error! echo "Error............" exit /b 1 ) |
1 2 3 4 5 6 7 8 9 |
# Connect to SFTP server using a password open ftp://MYID:MYPASSWORD@111.222.111.222:54325 -passive=on # Upload file # put %Folder%\%yyyymmdd%\ / put %Folder%\Temp\*.log /%yyyymmdd%/ # Exit WinSCP exit |
오류시 : 파일 업로드시 , 파일을 성공적으로 업로드 했습니다. 그러나 권한 또는 시간 설정을 하는 도중 오류가 발행하는 경우. 서버 오류 메시지 US-ASCII : SETSATE unsupported
설정

Winscp.com 오류 :
로그 저장 옵션 : /log=“경로/파일”
1 2 3 |
winscp.com /ini=nul /script=C:\SFTP.txt /log="C:\Logs\winscp.log" |
오류 내용:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
. 2025-05-07 14:17:52.843 Preserving timestamp [2025-05-05T15:31:08.000Z] < 2025-05-07 14:17:52.843 Type: SSH_FXP_STATUS, Size: 44, Number: 777 < 2025-05-07 14:17:52.843 Status code: 8, Message: 777, Server: SETSTAT unsupported, Language: US-ASCII * 2025-05-07 14:17:52.843 (ETerminal) 서버가 이 작업을 지원하지 않습니다. * 2025-05-07 14:17:52.843 오류 코드: 8 * 2025-05-07 14:17:52.843 서버 오류 메시지: (US-ASCII): SETSTAT unsupported . 2025-05-07 14:17:52.843 Asking user: . 2025-05-07 14:17:52.843 **'TEST20250505.TXT' 파일을 성공적으로 업로드 했습니다. 그러나 권한 또는 시간 설정을 하는 도중 오류가 발생 하였습니다.** . 2025-05-07 14:17:52.843 . 2025-05-07 14:17:52.843 만약 이 문제가 지속되면, 권한 또는 시간 속성 유지 설정을 끄거나 '권한 오류 무시' 옵션을 설정 하십시요. ("서버가 이 작업을 지원하지 않습니다. . 2025-05-07 14:17:52.843 오류 코드: 8 . 2025-05-07 14:17:52.843 서버 오류 메시지: (US-ASCII): SETSTAT unsupported") < 2025-05-07 14:17:52.843 Script: 'TEST20250505.TXT' 파일을 성공적으로 업로드 했습니다. 그러나 권한 또는 시간 설정을 하는 도중 오류가 발생 하였습니다. < 2025-05-07 14:17:52.843 만약 이 문제가 지속되면, 권한 또는 시간 속성 유지 설정을 끄거나 '권한 오류 무시' 옵션을 설정 하십시요. < 2025-05-07 14:17:52.843 Script: 서버가 이 작업을 지원하지 않습니다. < 2025-05-07 14:17:52.843 오류 코드: 8 < 2025-05-07 14:17:52.843 서버 오류 메시지: (US-ASCII): SETSTAT unsupported * 2025-05-07 14:17:52.844 (ESkipFile) **'TEST20250505.TXT' 파일을 성공적으로 업로드 했습니다. 그러나 권한 또는 시간 설정을 하는 도중 오류가 발생 하였습니다.** * 2025-05-07 14:17:52.844 * 2025-05-07 14:17:52.844 만약 이 문제가 지속되면, 권한 또는 시간 속성 유지 설정을 끄거나 '권한 오류 무시' 옵션을 설정 하십시요. * 2025-05-07 14:17:52.844 서버가 이 작업을 지원하지 않습니다. * 2025-05-07 14:17:52.844 오류 코드: 8 * 2025-05-07 14:17:52.844 서버 오류 메시지: (US-ASCII): SETSTAT unsupported . 2025-05-07 14:17:52.844 Copying finished: Transferred: 35,295, Elapsed: 0:00:00, CPS: 27,516/s . 2025-05-07 14:17:52.844 Script: Failed . 2025-05-07 14:17:52.844 Script: Exit code: 1 . 2025-05-07 14:17:52.844 Closing connection. . 2025-05-07 14:17:52.844 Sending special code: 12 . 2025-05-07 14:17:52.844 Sent EOF message |
해결 : -nopermissions -nopreservetime 옵션 추가
1 2 3 4 5 6 7 8 9 |
# Connect to SFTP server using a password open -nopermissions -nopreservetime ftp://MYID:MYPASSWORD@111.222.111.222:54325 -passive=on # Upload file # put %Folder%\%yyyymmdd%\ / put -nopermissions -nopreservetime %Folder%\Temp\*.log /%yyyymmdd%/ # Exit WinSCP exit |