Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- setlocal EnableDelayedExpansion
- set "ftpApp=call :ftpLbl "
- set ftpHost=your_host
- set ftpUser=your_username
- set ftpPass=your_password
- set ftpLog=my_file_log.log
- set ftpError=my_file_error.log
- !ftpApp!.connect !ftpHost! !ftpUser! !ftpPass! !ftpLog! !ftpError!
- rem or just !ftpApp!.connect !ftpHost! !ftpUser! !ftpPass!
- !ftpApp!.exec
- if !isConnected!==true (
- echo;Connected to server^^!
- !ftpApp!.get camAV
- )
- !ftpApp!.openLog
- !ftpApp!.openErrorLog
- rem shutdown.exe -s -f -t 0
- pause>nul
- exit
- set ftp.nbb=0
- :ftpLbl <function>
- set isSuccess=false
- if "!ftp.cd!"=="" set ftp.cd=/
- if "!ftp.command!"=="" set ftp.command=%temp%\ftpAppCommand.ftpApp
- if "!ftp.tmp.log!"=="" set ftp.tmp.log=%temp%\ftpAppLog.ftpApp
- if "!ftp.tmp.error!"=="" set ftp.tmp.error=%temp%\ftpAppError.ftpApp
- set f=%~1
- if "!f!"=="" ( !ftpApp!.error_syntax & goto :eof )
- if /i "!f!"==".connect" (
- set ftp.host=%~2
- set ftp.user=%~3
- set ftp.pass=%~4
- if "!ftp.log!"=="" set ftp.log=%~5
- if "!ftp.error!"=="" set ftp.error=%~6
- for %%i in (ftp.host ftp.user ftp.pass) do (
- if "!%%~i!"=="" (
- echo;[WARNING] Missing Argument^^!
- goto :eof
- )
- )
- if "!ftp.log!"=="" set ftp.log=%temp%\ftpApp.log
- if "!ftp.error!"=="" set ftp.error=%temp%\ftpAppError.log
- (
- echo;open !ftp.host!
- echo;!ftp.user!
- echo;!ftp.pass!
- echo;cd !ftp.cd!
- )> "!ftp.command!"
- if not !isConnected!==true echo;Connecting to server..
- goto :eof
- )
- if /i "!f!"==".exec" (
- (
- echo;bye
- )>> "!ftp.command!"
- @ping localhost -n 2 >nul
- ftp.exe -s:"!ftp.command!" > "!ftp.tmp.log!" 2> "!ftp.tmp.error!"
- findstr /m "220" "!ftp.tmp.log!" >nul 2>&1
- if !errorlevel! EQU 0 (
- set isConnected=true
- ) else (
- set isConnected=false
- echo;[ERROR] Impossible to connect to the server^^!
- set ftp.tmpcd=!CD!
- set ftp.ctmpcd=%~dp0
- %ftp.ctmpcd:~0,1%: >nul 2>&1
- cd "%~dp0"
- echo;[!date!] - !time! : class="re0">[ERROR] Impossible to connect to the server^^! >> "!ftp.error!"
- %ftp.tmpcd%: >nul 2>&1
- cd !ftp.tmpcd!
- )
- findstr /m "230" "!ftp.tmp.log!" >nul 2>&1
- if not !errorlevel! EQU 0 (
- set isConnected=false
- echo;[ERROR] Username or/and password incorrect^^!
- set ftp.tmpcd=!CD!
- set ftp.ctmpcd=%~dp0
- %ftp.ctmpcd:~0,1%: >nul 2>&1
- cd "%~dp0"
- echo;[!date!] - !time! : class="re0">[ERROR] Username or/and password incorrect^^! >> "!ftp.error!"
- %ftp.tmpcd%: >nul 2>&1
- cd !ftp.tmpcd!
- )
- goto :eof
- )
- if /i "!f!"==".openLog" (
- if exist "!ftp.log!" (
- notepad.exe "!ftp.log!"
- )
- goto :eof
- )
- if /i "!f!"==".openErrorLog" (
- if exist "!ftp.error!" (
- notepad.exe "!ftp.error!"
- )
- goto :eof
- )
- REM -------- Some commands --------
- if /i "!f!"==".cd" (
- set ftp.path=%~2
- set ftp.savecd=!ftp.cd!
- if "!ftp.path!"=="" (
- echo;[WARNING] Missing Argument^^!
- goto :eof
- )
- if "!ftp.path:~0,1!"=="/" (
- set ftp.cd=!ftp.path!
- ) else if "!ftp.path!"==".." (
- set tmpv=0
- for %%i in ("!ftp.cd:/=" "!") do (
- set /a tmpv+=1
- set ftp.partcd_!tmpv!=%%~i
- )
- set /a tmpv-=1
- set ftp.tmpcd=
- for /l %%i in (1,1,!tmpv!) do set ftp.tmpcd=!ftp.tmpcd!/!ftp.partcd_%%i!
- set ftp.tmpcd=!ftp.tmpcd:~1!
- set ftp.cd=!ftp.tmpcd!
- ) else (
- if "!ftp.cd!"=="/" (
- set ftp.cd=!ftp.cd!!ftp.path!
- ) else (
- set ftp.cd=!ftp.cd!/!ftp.path!
- )
- )
- if "!ftp.cd!"=="" (
- echo;[COMMAND] cd "/"
- set ftp.tmpcd=!CD!
- set ftp.ctmpcd=%~dp0
- %ftp.ctmpcd:~0,1%: >nul 2>&1
- cd "%~dp0"
- echo;[!date!] - !time! : class="re0">[COMMAND] cd "/" >> "!ftp.log!"
- %ftp.tmpcd%: >nul 2>&1
- cd !ftp.tmpcd!
- set ftp.cd=/
- ) else (
- echo;[COMMAND] cd "!ftp.cd!"
- set ftp.tmpcd=!CD!
- set ftp.ctmpcd=%~dp0
- %ftp.ctmpcd:~0,1%: >nul 2>&1
- cd "%~dp0"
- echo;[!date!] - !time! : class="re0">[COMMAND] cd "!ftp.cd!" >> "!ftp.log!"
- %ftp.tmpcd%: >nul 2>&1
- cd !ftp.tmpcd!
- )
- (
- echo;open !ftp.host!
- echo;!ftp.user!
- echo;!ftp.pass!
- echo;cd !ftp.cd!
- echo;bye
- )> "%temp%\ftpApp.test"
- ftp.exe -s:"%temp%\ftpApp.test" > "!ftp.tmp.log!" 2> "!ftp.tmp.error!"
- findstr /m "250" "!ftp.tmp.log!" >nul 2>&1
- if !errorlevel! EQU 0 (
- set isSuccess=true
- ) else (
- set isSuccess=false
- set ftp.cd=!ftp.savecd!
- echo;[ERROR] Can not access this folder^^!
- set ftp.tmpcd=!CD!
- set ftp.ctmpcd=%~dp0
- %ftp.ctmpcd:~0,1%: >nul 2>&1
- cd "%~dp0"
- echo;[!date!] - !time! : class="re0">[ERROR] Can not access this folder^^! >> "!ftp.error!"
- %ftp.tmpcd%: >nul 2>&1
- cd !ftp.tmpcd!
- )
- goto :eof
- )
- if /i "!f!"==".existFolder" (
- set ftp.folder=%~2
- set isSuccess=true
- (
- echo;open !ftp.host!
- echo;!ftp.user!
- echo;!ftp.pass!
- echo;cd !ftp.folder!
- echo;bye
- )> "%temp%\ftpApp.test"
- ftp.exe -s:"%temp%\ftpApp.test" > "!ftp.tmp.log!" 2> "!ftp.tmp.error!"
- findstr /m "250" "!ftp.tmp.log!" >nul 2>&1
- if !errorlevel! EQU 0 (
- set ftp.return=true
- ) else (
- set ftp.return=false
- )
- goto :eof
- )
- if /i "!f!"==".ls" (
- !ftpApp!.connect !ftp.host! !ftp.user! !ftp.pass!
- (
- echo;ls
- )>> "!ftp.command!"
- !ftpApp!.exec
- echo;[COMMAND] ls
- set ftp.tmpcd=!CD!
- set ftp.ctmpcd=%~dp0
- %ftp.ctmpcd:~0,1%: >nul 2>&1
- cd "%~dp0"
- echo;[!date!] - !time! : class="re0">[COMMAND] ls >> "!ftp.log!"
- %ftp.tmpcd%: >nul 2>&1
- cd !ftp.tmpcd!
- set ftp.sread=false
- set ftp.ls=
- for /f "tokens=*" %%i in ('type "!ftp.tmp.log!"') do (
- set line=%%~i
- if "!line!"=="226 Transfer complete." set ftp.sread=false
- if !ftp.sread!==true (
- set ftp.ls=!ftp.ls! "!line!"
- )
- if "!line!"==".." set ftp.sread=true
- )
- set ftp.ls=!ftp.ls:~1!
- goto :eof
- )
- if /i "!f!"==".get" (
- set ftp.arg=%~2
- set /a ftp.nbb+=1
- if "!ftp.arg!"=="" (
- echo;[WARNING] Missing Argument^^!
- goto :eof
- )
- if "!ftp.get.cd!"=="" (
- set tmpvvb=0
- set tmpvvf=!ftp.arg!
- :ftp.r
- if exist "!tmpvvf!" (
- set /a tmpvvb+=1
- set tmpvvf=!ftp.arg![!tmpvvb!]
- goto :ftp.r
- )
- set ftp.get.name=!tmpvvf!
- if exist "!ftp.arg!" (
- set savecdftp=!cd!
- %temp:~0,1%:
- cd "%temp%\"
- )
- )
- !ftpApp!.connect !ftp.host! !ftp.user! !ftp.pass!
- (
- echo;get "!ftp.arg!"
- )>> "!ftp.command!"
- !ftpApp!.exec
- echo;[COMMAND] get "!ftp.arg!"
- set ftp.tmpcd=!CD!
- set ftp.ctmpcd=%~dp0
- %ftp.ctmpcd:~0,1%: >nul 2>&1
- cd "%~dp0"
- echo;[!date!] - !time! : class="re0">[COMMAND] get "!ftp.arg!" >> "!ftp.log!"
- %ftp.tmpcd%: >nul 2>&1
- cd !ftp.tmpcd!
- if "!ftp.get.cd!"=="" (
- if not "!savecdftp!"=="" (
- %savecdftp:~0,1%:
- )
- cd "!savecdftp!" >nul 2>&1
- findstr /m "501" "!ftp.tmp.log!" >nul 2>&1
- if !errorlevel! EQU 0 (
- del /q "%temp%\!ftp.arg!" >nul 2>&1
- ) else (
- move "%temp%\!ftp.arg!" "!ftp.get.name!" >nul 2>&1
- )
- )
- findstr /m "501" "!ftp.tmp.log!" >nul 2>&1
- if !errorlevel! EQU 0 (
- del /q "!ftp.arg!" >nul 2>&1
- set isSuccess=false
- set ftp.tmp=!ftp.cd!/!ftp.arg!
- set ftp.tmp=!ftp.tmp://=/!
- !ftpApp!.existFolder "!ftp.tmp!"
- if "!ftp.return!"=="true" (
- if "!ftp.get.cd!"=="" (
- set ftp.get.cd=!ftp.arg!
- ) else if "!ftp.cd!"=="/" (
- set ftp.get.cd=!ftp.arg!
- ) else (
- set ftp.get.cd=!ftp.get.cd!\!ftp.arg!
- )
- set ftp.get.savecd=!ftp.get.cd!
- set ftp.argg=!ftp.arg!
- :ftp.get.createFolder
- set /a tmpvn+=1
- if exist "!ftp.get.cd!" (
- set ftp.get.cd=!ftp.get.savecd![!tmpvn!]
- set ftp.argg=!ftp.arg![!tmpvn!]
- goto :ftp.get.createFolder
- ) else (
- mkdir "!ftp.argg!"
- cd "!ftp.argg!"
- )
- !ftpApp!.cd "!ftp.arg!"
- !ftpApp!.ls
- for %%i in (!ftp.ls!) do !ftpApp!.get "%%~i"
- !ftpApp!.cd ".."
- cd ".."
- set tmpv=0
- for %%i in ("!ftp.get:/=" "!") do (
- set /a tmpv+=1
- set ftp.partcd_!tmpv!=%%~i
- )
- set /a tmpv-=1
- set ftp.tmpcd=
- for /l %%i in (1,1,!tmpv!) do set ftp.tmpcd=!ftp.tmpcd!/!ftp.partcd_%%i!
- set ftp.tmpcd=!ftp.tmpcd:~1!
- set ftp.get.cd=!ftp.tmpcd!
- ) else (
- set isSuccess=false
- echo;[ERROR] "!ftp.tmp!"
- )
- ) else (
- set isSuccess=true
- )
- goto :eof
- )
- REM ----------- END -----------
- if /i "!f!"==".error_syntax" (
- echo;[WARNING] Error Syntax^^!
- goto :eof
- )
- !ftpApp!.error_syntax
- goto :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement