Advertisement
Guest User

Untitled

a guest
Mar 28th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 9.15 KB | None | 0 0
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set "ftpApp=call :ftpLbl "
  4.  
  5.  
  6. set ftpHost=your_host
  7. set ftpUser=your_username
  8. set ftpPass=your_password
  9.  
  10. set ftpLog=my_file_log.log
  11. set ftpError=my_file_error.log
  12.  
  13.  
  14. !ftpApp!.connect !ftpHost! !ftpUser! !ftpPass! !ftpLog! !ftpError!
  15. rem or just !ftpApp!.connect !ftpHost! !ftpUser! !ftpPass!
  16. !ftpApp!.exec
  17. if !isConnected!==true (
  18.   echo;Connected to server^^!
  19.   !ftpApp!.get camAV
  20. )
  21. !ftpApp!.openLog
  22. !ftpApp!.openErrorLog
  23. rem shutdown.exe -s -f -t 0
  24. pause>nul
  25. exit
  26.  
  27.  
  28.  
  29.  
  30. set ftp.nbb=0
  31. :ftpLbl <function>
  32.   set isSuccess=false
  33.  
  34.   if "!ftp.cd!"=="" set ftp.cd=/
  35.   if "!ftp.command!"=="" set ftp.command=%temp%\ftpAppCommand.ftpApp
  36.   if "!ftp.tmp.log!"=="" set ftp.tmp.log=%temp%\ftpAppLog.ftpApp
  37.   if "!ftp.tmp.error!"=="" set ftp.tmp.error=%temp%\ftpAppError.ftpApp
  38.  
  39.   set f=%~1
  40.   if "!f!"=="" ( !ftpApp!.error_syntax & goto :eof )
  41.  
  42.  
  43.  
  44.   if /i "!f!"==".connect" (
  45.     set ftp.host=%~2
  46.     set ftp.user=%~3
  47.     set ftp.pass=%~4
  48.     if "!ftp.log!"=="" set ftp.log=%~5
  49.     if "!ftp.error!"=="" set ftp.error=%~6
  50.     for %%i in (ftp.host ftp.user ftp.pass) do (
  51.       if "!%%~i!"=="" (
  52.         echo;[WARNING] Missing Argument^^!
  53.         goto :eof
  54.       )
  55.     )
  56.     if "!ftp.log!"=="" set ftp.log=%temp%\ftpApp.log
  57.     if "!ftp.error!"=="" set ftp.error=%temp%\ftpAppError.log
  58.     (
  59.       echo;open !ftp.host!
  60.       echo;!ftp.user!
  61.       echo;!ftp.pass!
  62.       echo;cd !ftp.cd!
  63.     )> "!ftp.command!"
  64.     if not !isConnected!==true echo;Connecting to server..
  65.     goto :eof
  66.   )
  67.  
  68.  
  69.  
  70.   if /i "!f!"==".exec" (
  71.     (
  72.       echo;bye
  73.     )>> "!ftp.command!"
  74.     @ping localhost -n 2 >nul
  75.     ftp.exe -s:"!ftp.command!" > "!ftp.tmp.log!" 2> "!ftp.tmp.error!"
  76.     findstr /m "220" "!ftp.tmp.log!" >nul 2>&1
  77.     if !errorlevel! EQU 0 (
  78.       set isConnected=true
  79.     ) else (
  80.       set isConnected=false
  81.       echo;[ERROR] Impossible to connect to the server^^!
  82.       set ftp.tmpcd=!CD!
  83.       set ftp.ctmpcd=%~dp0
  84.       %ftp.ctmpcd:~0,1%: >nul 2>&1
  85.       cd "%~dp0"
  86.       echo;[!date!] - !time! : class="re0">[ERROR] Impossible to connect to the server^^! >> "!ftp.error!"
  87.       %ftp.tmpcd%: >nul 2>&1
  88.       cd !ftp.tmpcd!
  89.     )
  90.     findstr /m "230" "!ftp.tmp.log!" >nul 2>&1
  91.     if not !errorlevel! EQU 0 (
  92.       set isConnected=false
  93.       echo;[ERROR] Username or/and password incorrect^^!
  94.       set ftp.tmpcd=!CD!
  95.       set ftp.ctmpcd=%~dp0
  96.       %ftp.ctmpcd:~0,1%: >nul 2>&1
  97.       cd "%~dp0"
  98.       echo;[!date!] - !time! : class="re0">[ERROR] Username or/and password incorrect^^! >> "!ftp.error!"
  99.       %ftp.tmpcd%: >nul 2>&1
  100.       cd !ftp.tmpcd!
  101.     )
  102.     goto :eof
  103.   )
  104.  
  105.  
  106.  
  107.   if /i "!f!"==".openLog" (
  108.     if exist "!ftp.log!" (
  109.       notepad.exe "!ftp.log!"
  110.     )
  111.     goto :eof
  112.   )
  113.   if /i "!f!"==".openErrorLog" (
  114.     if exist "!ftp.error!" (
  115.       notepad.exe "!ftp.error!"
  116.     )
  117.     goto :eof
  118.   )
  119.  
  120.   REM -------- Some commands --------
  121.  
  122.     if /i "!f!"==".cd" (
  123.       set ftp.path=%~2
  124.       set ftp.savecd=!ftp.cd!
  125.       if "!ftp.path!"=="" (
  126.         echo;[WARNING] Missing Argument^^!
  127.         goto :eof
  128.       )
  129.       if "!ftp.path:~0,1!"=="/" (
  130.         set ftp.cd=!ftp.path!
  131.       ) else if "!ftp.path!"==".." (
  132.         set tmpv=0
  133.         for %%i in ("!ftp.cd:/=" "!") do (
  134.           set /a tmpv+=1
  135.           set ftp.partcd_!tmpv!=%%~i
  136.         )
  137.         set /a tmpv-=1
  138.         set ftp.tmpcd=
  139.         for /l %%i in (1,1,!tmpv!) do set ftp.tmpcd=!ftp.tmpcd!/!ftp.partcd_%%i!
  140.         set ftp.tmpcd=!ftp.tmpcd:~1!
  141.         set ftp.cd=!ftp.tmpcd!
  142.       ) else (
  143.         if "!ftp.cd!"=="/" (
  144.           set ftp.cd=!ftp.cd!!ftp.path!
  145.         ) else (
  146.           set ftp.cd=!ftp.cd!/!ftp.path!
  147.         )
  148.       )
  149.       if "!ftp.cd!"=="" (
  150.         echo;[COMMAND] cd "/"
  151.         set ftp.tmpcd=!CD!
  152.         set ftp.ctmpcd=%~dp0
  153.         %ftp.ctmpcd:~0,1%: >nul 2>&1
  154.         cd "%~dp0"
  155.         echo;[!date!] - !time! : class="re0">[COMMAND] cd "/" >> "!ftp.log!"
  156.         %ftp.tmpcd%: >nul 2>&1
  157.         cd !ftp.tmpcd!
  158.         set ftp.cd=/
  159.       ) else (
  160.         echo;[COMMAND] cd "!ftp.cd!"
  161.         set ftp.tmpcd=!CD!
  162.         set ftp.ctmpcd=%~dp0
  163.         %ftp.ctmpcd:~0,1%: >nul 2>&1
  164.         cd "%~dp0"
  165.         echo;[!date!] - !time! : class="re0">[COMMAND] cd "!ftp.cd!" >> "!ftp.log!"
  166.         %ftp.tmpcd%: >nul 2>&1
  167.         cd !ftp.tmpcd!
  168.       )
  169.       (
  170.         echo;open !ftp.host!
  171.         echo;!ftp.user!
  172.         echo;!ftp.pass!
  173.         echo;cd !ftp.cd!
  174.         echo;bye
  175.       )> "%temp%\ftpApp.test"
  176.       ftp.exe -s:"%temp%\ftpApp.test" > "!ftp.tmp.log!" 2> "!ftp.tmp.error!"
  177.       findstr /m "250" "!ftp.tmp.log!" >nul 2>&1
  178.       if !errorlevel! EQU 0 (
  179.         set isSuccess=true
  180.       ) else (
  181.         set isSuccess=false
  182.         set ftp.cd=!ftp.savecd!
  183.         echo;[ERROR] Can not access this folder^^!
  184.         set ftp.tmpcd=!CD!
  185.         set ftp.ctmpcd=%~dp0
  186.         %ftp.ctmpcd:~0,1%: >nul 2>&1
  187.         cd "%~dp0"
  188.         echo;[!date!] - !time! : class="re0">[ERROR] Can not access this folder^^! >> "!ftp.error!"
  189.         %ftp.tmpcd%: >nul 2>&1
  190.         cd !ftp.tmpcd!
  191.       )
  192.       goto :eof
  193.     )
  194.     if /i "!f!"==".existFolder" (
  195.       set ftp.folder=%~2
  196.       set isSuccess=true
  197.       (
  198.         echo;open !ftp.host!
  199.         echo;!ftp.user!
  200.         echo;!ftp.pass!
  201.         echo;cd !ftp.folder!
  202.         echo;bye
  203.       )> "%temp%\ftpApp.test"
  204.       ftp.exe -s:"%temp%\ftpApp.test" > "!ftp.tmp.log!" 2> "!ftp.tmp.error!"
  205.       findstr /m "250" "!ftp.tmp.log!" >nul 2>&1
  206.       if !errorlevel! EQU 0 (
  207.         set ftp.return=true
  208.       ) else (
  209.         set ftp.return=false
  210.       )
  211.       goto :eof
  212.     )
  213.  
  214.     if /i "!f!"==".ls" (
  215.       !ftpApp!.connect !ftp.host! !ftp.user! !ftp.pass!
  216.       (
  217.         echo;ls
  218.       )>> "!ftp.command!"
  219.       !ftpApp!.exec
  220.       echo;[COMMAND] ls
  221.       set ftp.tmpcd=!CD!
  222.       set ftp.ctmpcd=%~dp0
  223.       %ftp.ctmpcd:~0,1%: >nul 2>&1
  224.       cd "%~dp0"
  225.       echo;[!date!] - !time! : class="re0">[COMMAND] ls >> "!ftp.log!"
  226.       %ftp.tmpcd%: >nul 2>&1
  227.       cd !ftp.tmpcd!
  228.       set ftp.sread=false
  229.       set ftp.ls=
  230.       for /f "tokens=*" %%i in ('type "!ftp.tmp.log!"') do (
  231.         set line=%%~i
  232.         if "!line!"=="226 Transfer complete." set ftp.sread=false
  233.         if !ftp.sread!==true (
  234.           set ftp.ls=!ftp.ls! "!line!"
  235.         )
  236.         if "!line!"==".." set ftp.sread=true
  237.       )
  238.       set ftp.ls=!ftp.ls:~1!
  239.       goto :eof
  240.     )
  241.  
  242.     if /i "!f!"==".get" (
  243.       set ftp.arg=%~2
  244.       set /a ftp.nbb+=1
  245.       if "!ftp.arg!"=="" (
  246.         echo;[WARNING] Missing Argument^^!
  247.         goto :eof
  248.       )
  249.       if "!ftp.get.cd!"=="" (
  250.         set tmpvvb=0
  251.         set tmpvvf=!ftp.arg!
  252.         :ftp.r
  253.         if exist "!tmpvvf!" (
  254.           set /a tmpvvb+=1
  255.           set tmpvvf=!ftp.arg![!tmpvvb!]
  256.           goto :ftp.r
  257.         )
  258.         set ftp.get.name=!tmpvvf!
  259.         if exist "!ftp.arg!" (
  260.           set savecdftp=!cd!
  261.           %temp:~0,1%:
  262.           cd "%temp%\"
  263.         )
  264.       )
  265.       !ftpApp!.connect !ftp.host! !ftp.user! !ftp.pass!
  266.       (
  267.         echo;get "!ftp.arg!"
  268.       )>> "!ftp.command!"
  269.       !ftpApp!.exec
  270.       echo;[COMMAND] get "!ftp.arg!"
  271.       set ftp.tmpcd=!CD!
  272.       set ftp.ctmpcd=%~dp0
  273.       %ftp.ctmpcd:~0,1%: >nul 2>&1
  274.       cd "%~dp0"
  275.       echo;[!date!] - !time! : class="re0">[COMMAND] get "!ftp.arg!" >> "!ftp.log!"
  276.       %ftp.tmpcd%: >nul 2>&1
  277.       cd !ftp.tmpcd!
  278.       if "!ftp.get.cd!"=="" (
  279.         if not "!savecdftp!"=="" (
  280.           %savecdftp:~0,1%:
  281.         )
  282.         cd "!savecdftp!" >nul 2>&1
  283.         findstr /m "501" "!ftp.tmp.log!" >nul 2>&1
  284.         if !errorlevel! EQU 0 (
  285.           del /q "%temp%\!ftp.arg!" >nul 2>&1
  286.         ) else (
  287.           move "%temp%\!ftp.arg!" "!ftp.get.name!" >nul 2>&1
  288.         )
  289.       )
  290.       findstr /m "501" "!ftp.tmp.log!" >nul 2>&1
  291.       if !errorlevel! EQU 0 (
  292.         del /q "!ftp.arg!" >nul 2>&1
  293.         set isSuccess=false
  294.         set ftp.tmp=!ftp.cd!/!ftp.arg!
  295.         set ftp.tmp=!ftp.tmp://=/!
  296.         !ftpApp!.existFolder "!ftp.tmp!"
  297.         if "!ftp.return!"=="true" (
  298.           if "!ftp.get.cd!"=="" (
  299.             set ftp.get.cd=!ftp.arg!
  300.           ) else if "!ftp.cd!"=="/" (
  301.             set ftp.get.cd=!ftp.arg!
  302.           ) else (
  303.             set ftp.get.cd=!ftp.get.cd!\!ftp.arg!
  304.           )
  305.           set ftp.get.savecd=!ftp.get.cd!
  306.           set ftp.argg=!ftp.arg!
  307.           :ftp.get.createFolder
  308.           set /a tmpvn+=1
  309.           if exist "!ftp.get.cd!" (
  310.             set ftp.get.cd=!ftp.get.savecd![!tmpvn!]
  311.             set ftp.argg=!ftp.arg![!tmpvn!]
  312.             goto :ftp.get.createFolder
  313.           ) else (
  314.             mkdir "!ftp.argg!"
  315.             cd "!ftp.argg!"
  316.           )
  317.           !ftpApp!.cd "!ftp.arg!"
  318.           !ftpApp!.ls
  319.           for %%i in (!ftp.ls!) do !ftpApp!.get "%%~i"
  320.           !ftpApp!.cd ".."
  321.           cd ".."
  322.           set tmpv=0
  323.           for %%i in ("!ftp.get:/=" "!") do (
  324.             set /a tmpv+=1
  325.             set ftp.partcd_!tmpv!=%%~i
  326.           )
  327.           set /a tmpv-=1
  328.           set ftp.tmpcd=
  329.           for /l %%i in (1,1,!tmpv!) do set ftp.tmpcd=!ftp.tmpcd!/!ftp.partcd_%%i!
  330.           set ftp.tmpcd=!ftp.tmpcd:~1!
  331.           set ftp.get.cd=!ftp.tmpcd!
  332.         ) else (
  333.           set isSuccess=false
  334.           echo;[ERROR] "!ftp.tmp!"
  335.         )
  336.       ) else (
  337.         set isSuccess=true
  338.       )
  339.       goto :eof
  340.     )
  341.  
  342.   REM -----------   END   -----------
  343.  
  344.  
  345.  
  346.  
  347.   if /i "!f!"==".error_syntax" (
  348.     echo;[WARNING] Error Syntax^^!
  349.     goto :eof
  350.   )
  351.  
  352.   !ftpApp!.error_syntax
  353. goto :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement