Automatické nahrávání souborů na FTP a odesílání souborů e-mailem. Jak stahovat soubory z FTP z příkazového řádku Windows Dávkový soubor pro stahování souborů z FTP

Protokol FTP je jedním z běžných síťových protokolů používaných uživateli internetu. Drtivá většina lidí používá různé FTP klienty ke stahování čehokoli z FTP serverů. Málokdo však ví, že systém Windows umožňuje připojení k serverům FTP z příkazového řádku.

V tomto tipu se dozvíte jak stahovat soubory z FTP serverů pomocí jednoduchých příkazů DOS.

Návod krok za krokem:

V následujících situacích stáhnout soubor z FTP z příkazového řádku Řetězce Windows , proveďte několik jednoduchých kroků:

  1. Otevřete příkazový řádek systému Windows kliknutím na Start - Spustit, zadáním cmd a stisknutím klávesy Enter.
  2. Spusťte následující příkaz: Pomocí tohoto příkazu se připojíme k serveru Microsoft ftp.
  3. Zadejte anonymní uživatelské jméno. Server této známé společnosti umožňuje anonymním uživatelům připojit se:
  4. Jako heslo zadejte svůj e-mail (můžete zadat i neexistující):
  5. Gratulujeme k úspěšnému přihlášení!
  6. Chcete-li zjistit, jaké soubory a adresáře jsou dostupné na ftp serveru, zadejte příkaz dir:
  7. V důsledku toho získáme seznam souborů a adresářů umístěných na ftp serveru:
  8. Chcete-li přejít do požadovaného adresáře, použijte příkaz cd:
  9. Zpráva „250 CWD příkaz úspěšný“ bude znamenat, že jsme se úspěšně přesunuli do adresáře, který potřebujeme:
  10. Chcete-li stáhnout soubor, který potřebujeme, zadejte příkaz get a název stahovaného souboru:
  11. Po úspěšném přijetí souboru nás systém upozorní:
  12. Chcete-li opustit ftp server a odpojit se od něj, spusťte příkaz bye:

Možná si mnozí řeknou, že je mnohem pohodlnější stahovat soubory pomocí multifunkčních download managerů nebo ftp klientů, ale v případě potřeby (nebo jako alternativa) lze použít jednoduché příkazy DOS to vám umožní stahování souborů z ftp bez dalších nákladů.

Pro připojení k FTP serveru není nutné používat žádné programy třetích stran – to lze provést pomocí standardních funkcí Windows. Chcete-li to provést, můžete použít příkazový řádek CMD. Ale ke správě serveru prostřednictvím standardních funkcí operační systém, budete si muset prostudovat dostupné příkazy, protože CMD nemá vizuální rozhraní. V tomto článku se dozvíte základní FTP příkazy a jak je uvést do praxe.

Proč je lepší stáhnout klienta než používat CMD?

Pokud by vám příkazový řádek CMD umožňoval provádět všechny dostupné operace na FTP serverech, pak by možná nebylo potřeba klientů. Ale realita je taková, že řada CMD je z hlediska správy serveru velmi omezená. Proto je lepší najít příležitost a stáhnout si do počítače nástroj pro správu serveru přes FTP. Stáhněte si do počítače například klientský program FileZilla – lze jej zdarma stáhnout z oficiálních stránek vývojářů. Instalace nezabere mnoho času. A pro připojení k serveru budete muset pouze zadat své přihlašovací jméno, heslo a jméno hostitele do požadovaného řádku. Přes CMD je to mnohem obtížnější.

Specifickou nevýhodou CMD linky je, že na serveru ani nebudete moci přejít do pasivního režimu. A bez tohoto režimu si nebudete moci vyměňovat soubory se servery FTP, které fungují prostřednictvím NAT.

Ve skutečnosti je to velmi velká chyba v CMD. Smiřte se proto s tím, že příkazový řádek Windows je vhodný pouze pro manipulaci uvnitř souborový systém bez výměny dat. Přestože pro ty, kteří používají FTP server pro rutinní, monotónní práci, se může příkazový řádek zdát velmi pohodlný. Ale je lepší vyzkoušet jak klienta, tak CMD, aby vyvodili nějaké závěry.

Jaké jsou příkazy pro správu FTP v příkazovém řádku CMD?

Chcete-li začít, spusťte příkazový řádek. Můžete to udělat hledáním v Start - najděte soubor cmd.exe a otevřete jej, po kterém se spustí řádek.

Chcete-li se připojit k serveru, musíte použít příkaz OPEN. Po tomto příkazu musíte zadat IP adresu nebo název hostitele, se kterým chcete nastavit připojení. Po zadání tohoto požadavku se budete moci přihlásit na server. To lze provést pomocí příkazu USER, který provede požadavek na autentizaci prostřednictvím zadaného loginu. Poté je třeba zadat příkaz PASS, což znamená heslo. Když zadáte své heslo a stisknete „Enter“, budete na serveru autorizováni.

Obecně je příkazový řádek vhodný pouze pro „procházení“ serveru, přesouvání souborů atd. Nejprve budete muset vidět soubory, které jsou na serveru. Chcete-li to provést, použijte příkaz LS. Protože na příkazovém řádku není žádný kurzor, je třeba vybrat adresář nebo soubor pomocí speciálních příkazů. Použijte k tomu CD nebo LCD řádek - první je potřeba pro změnu aktuálního objektu na vzdáleném počítači a druhý je potřeba pro lokální, tedy pro váš PC.

Přestože nebudete moci nahrávat soubory na FTP server přes CMD, je možné stahovat data do vašeho počítače. Chcete-li to provést, použijte příkaz GET. Nejprve napište příkaz GET s názvem souboru a poté označte, který adresář na vašem počítači je aktuální, aby server přenesl data přesně do této složky.

Tyto příkazy se používají nejčastěji. To znamená, že většina uživatelů spravuje server pomocí CMD za účelem rychlého stahování souborů bez předchozí instalace klienta. Ale můžete jít mnohem dále a používat další příkazy na serveru pomocí příkazového řádku CMD. Například můžete na server přidat signál dokončení příkazu pomocí řetězce BELL.

Pokud chcete ukončit relaci a ukončit příkazový řádek a server, zadejte BYE. A chcete-li přerušit řídicí spojení pouze na serveru, abyste zůstali uvnitř příkazového řádku, napište CLOSE. V tomto případě budou soubory, které stáhnete do počítače ze serveru, nadále stahovány a po dokončení stahování bude relace zcela uzavřena.

Pomocí CMD můžete snadno manipulovat s adresáři na serveru. Chcete-li například odstranit zadaný adresář, použijte příkaz DELETE. Chcete-li, aby se na obrazovce zobrazil seznam souborů v určité složce, zadejte DIR a cestu k adresáři. Pokud nechcete odstranit jednu složku nebo soubor, ale několik najednou, použijte příkaz MDELETE, tedy vícenásobné odstranění. Podobně lze předponu „m“ použít pro další příkazy, takže lze spojit více akcí do jedné. Chcete-li tedy zobrazit seznam souborů v několika adresářích najednou, napište MDIR a pro stahování dávek dat ze serveru použijte MGET. Nepleťte si ale multi-příkaz s jedním MKDIR - je potřeba pro vygenerování adresáře na serveru.

Je možné, že váš FTP server pracuje bez technologie NAT, takže pasivní klientský režim není potřeba. V tomto případě budete moci stáhnout určité soubory k hostiteli. Použijte příkaz MPUT k nahrání více souborů a příkaz PUT, pokud chcete nahrát pouze jeden.

Dalším oblíbeným příkazem, který se vám bude s největší pravděpodobností hodit, je RENAME. Potřebujete příkaz k přejmenování souborů. Bude to užitečné pro ty, kteří používají server jako úložiště pro data webu. Budete také potřebovat příkaz PWD, který určí aktuální složku na vzdáleném FTP serveru, nikoli na vašem počítači, jak to dělá LCD řádek.

Následující příkazy jsou částečným seznamem funkcí, které můžete použít v FTP. Jsou tam i jiné týmy. A můžete se o nich dozvědět přímo v příkazovém řádku, pokud zadáte dotaz HELP. Poté se objeví adresář se všemi dostupnými CMD příkazy, které lze v FTP použít. Jen mějte na paměti, že v tuto chvíli musíte být připojeni k serveru, jinak vám systém Windows nabídne jiný adresář. A pokud chcete požádat o pomoc samotný server, napište REMOTEHELP.

Správa serveru pomocí příkazů je samozřejmě věc doby kamenné. Proto je lepší neztrácet čas, stáhnout si do počítače běžného FTP klienta a server využívat na maximum a ne částečně. Ale cvičení na příkazovém řádku CMD nikdy nikomu neublížilo!

Potřeboval jsem posílat soubory zpráv každou hodinu FTP server a také duplikovat zasílání těchto souborů poštou několika příjemcům. Po nějakém výzkumu jsem se rozhodl pro vestavěný nástroj ftp.exe (C:\Windows\System32\ftp.exe) a starý dobrý blat. Takže, začněme. Potřebujeme každou hodinu nahrát všechny soubory XML z adresáře %dir%\file_export (kde %dir% je cesta k naší složce) na server ftp.server.com.
Nová verze v Pythonu

Nastavení nahrávání souborů na FTP

Vytvořte soubor příkazů pro ftp.exe
tvoříme Textový dokument(například ftpcomm.txt) do něj zapíšeme:
přihlásit se
Heslo
cd IN
binární

sbohem
Kde:
přihlásit se- přihlášení k ftp serveru
Heslo- heslo pro ftp server
cd IN- přejděte do požadované složky
binární- nastavit binární metodu odesílání souborů. V tomto případě není soubor během přenosu překódován a je zaznamenán beze změny. Tohle je nejvíc spolehlivým způsobem přenos souboru.
mput C:\%dir%\file_export\*.xml- zkopírujte jeden nebo více místních souborů na vzdálený počítač s uvedením adresáře
sbohem- konec relace FTP a ukončení FTP serveru
Vytvořte soubor export.bat
Píšeme v něm:

Kde:
C:\WINDOWS\system32\ftp.exe- Cesta k nástroji ftp.exe
-s:c:\%dir%\ftpcomm.tx t - nastavte cestu k textovému souboru obsahujícímu FTP příkazy, příkazy budou automaticky spuštěny po spuštění FTP.
-i- zakázat interaktivní režim při přenosu více souborů.
ftp.server.com- zadejte adresu našeho FTP serveru.
Práci zkontrolujeme spuštěním export.bat. Vidíme, že soubory byly nahrány na server FTP. Zde však nastává problém: pokud potřebujeme nahrávat soubory jednou za hodinu, jak můžeme zabránit opětovnému odesílání souborů? Řešení je triviální:
Přidejte do souboru export.bat:
cd /d C:\%dir%\export_souboru\
del *.xml
Kde:
cd /d C:\%dir%\export_souboru\- přejděte do adresáře, ve kterém jsou uloženy soubory XML.
del *.xml- odstranit všechny soubory XML.

Nastavení odesílání souborů do e-mailem

K odesílání souborů e-mailem používáme nástroj blat (http://www.blat.net/). Stáhněte a rozbalte do libovolného adresáře, v našem případě je to c:\%dir\blat/
Montážní blat. Zavolejte příkazový řádek. Na příkazovém řádku přejděte do naší složky:
cd c:\%dir%\blat/
Spustíme instalaci blatu (profil blatu zaregistrujeme do registru, data se zapíší do registru Systémy Windows do vlákna: .
blat.exe -install smtp.yandex.ru [email protected] 3 25 profil [email protected] Your_Password
Kde:
smtp.yandex.ru- Název poštovní server, prostřednictvím kterého budou zasílány e-maily.
[email protected]- jméno odesílatele, které se zobrazí v poli.
3 - počet pokusů o opětovné odeslání dopisu, pokud selže připojení k serveru.
25 - Číslo portu serveru SMTP.
profil- jméno profilu.
[email protected]- uživatelské jméno, které bude použito při připojení k SMTP serveru.
Vaše heslo- heslo používané při připojení k SMTP serveru, tzn. heslo k poštovní schránce.

Přidání odesílání e-mailů na export.bat

V souboru export.bat za řádkem
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
Píšeme:

Kde:
-p profil– název profilu blat (Specifikováno během instalace)
-znaková sada windows-1251(Vyberte kódování Windows)
-na [e-mail chráněný] – adresa příjemce dopisu
-předmět "Export souboru"- Předmět dopisu
-body "Automatický export"– Tělo dopisu
-připojit c:\%dir%\export_souboru\*.xml– soubory nebo soubory, které je třeba odeslat
Pokud potřebujete poslat dopisy do několika poštovních schránek, napište tento řádek několikrát a označte poštovní schránky příjemce:
blat.exe -p profil -charset windows-1251 -to [e-mail chráněný]-subject "Export souboru" -body "Auto export" -attach c:\%dir%\file_export\*.xml
blat.exe -p profil -charset windows-1251 -to [e-mail chráněný]-subject "Export souboru" -body "Auto export" -attach c:\%dir%\file_export\*.xml
blat.exe -p profil -charset windows-1251 -to [e-mail chráněný]-subject "Export souboru" -body "Auto export" -attach c:\%dir%\file_export\*.xml

Finální soubor export.bat

Výsledkem je soubor export.bat, ve kterém máme řádky:
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
blat.exe -p profil -charset windows-1251 -to [e-mail chráněný]-subject "Export souboru" -body "Auto export" -attach c:\%dir%\file_export\*.xml
cd /d C:\%dir%\export_souboru\
del *.xml
V prvním řádku odešleme soubory na FTP server, v druhém pošleme soubory e-mailem, poté přejděte do adresáře, kde jsou soubory uloženy, a smažte je.

Odesílání souborů podle plánu

Dovolte mi připomenout, že potřebujeme posílat soubory každou hodinu, k tomu vytvoříme úlohu v Plánovači Windows. Kde označujeme, že musíme spustit export.bat jednou za hodinu.

Sečteno a podtrženo

V důsledku toho máme automatizovaný systém hodinové odesílání souborů na FTP server a e-mail.

Často je nutné automatizovat procesy stahování, nahrávání a mazání souborů z FTP serveru. Například při práci s distribuovanými databázemi 1C nebo k ukládání záložní kopie. Ale ne každý ví, že tyto postupy lze provádět z příkazového řádku bez použití dalších software, to je Nástroje Windows. Níže uvedu syntaxi příkazů pro práci s FTP a také příklady souborů bat pro tyto operace.

1.ftp příkaz

Pro výměnu souborů se serverem FTP použijte příkaz ftp, zde je jeho syntaxe:

FTP[-v] [-d] [-i] [-n] [-g] [-s:název souboru] [-a] [-A] [-x:sendbuffer]
[-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [uzel]

-proti Zakázat zobrazování odpovědí ze vzdáleného serveru.
-n Zakázat automatické přihlášení při prvním připojení.
-i Zakázání interaktivních požadavků při odesílání více položek
soubory.
-d Povolit režim ladění.
-G Zakázat globalizaci názvů souborů (viz příkaz GLOB).
-s:název souboru Cvičení textový soubor, obsahující příkazy FTP, které
se spustí automaticky při spuštění FTP.
-A Používání místní rozhraní navázat spojení.
-A Anonymní přihlášení do služby.
-x:odeslat sockbuf Přepište výchozí velikost vyrovnávací paměti SO_SNDBUF (8192).
-r:recv sockbuf Přepíše výchozí velikost vyrovnávací paměti SO_RCVBUF (8192).
-b:async count Přepsání výchozí velikosti asynchronního počítadla (3)
-w:velikost okna Přepíše výchozí velikost vyrovnávací paměti pro vysílání (65535).
uzel Zadání názvu nebo IP adresy vzdáleného uzlu,
ke kterému se chcete připojit.

Jak vidíte, pro připojení k serveru a práci se soubory neexistují žádné operátory. Jde o to, že tento příkaz spustí pouze ftp relaci:

!
Dočasný přechod do skořápky.

připojit
Přidávání do souboru.

ascii
Nastavení režimu přenosu pro soubory ve formátu ASCII.

zvonek
Zvukový signál po dokončení příkazu

binární
Nastavte režim přenosu binárních souborů.

sbohem
Ukončete ftp relaci a odhlaste se.

CD <удаленный_каталог>
Změna pracovního adresáře na vzdáleném počítači, kde:
<удаленный_каталог> — název adresáře, který bude funkční.

zavřít
Ukončení relace ftp.

ladit
Přepínání režimu ladění.

vymazat <удаленный_файл>
Odstranění souboru na vzdáleném počítači, kde:
<удаленный_файл> — název souboru, který má být odstraněn.

dir [ <удаленный_каталог> ] [<локальный_файл> ]
Zobrazí obsah adresáře vzdáleného počítače, kde:
<удаленный_каталог>
<локальный_файл>

odpojit
Ukončení relace ftp.

dostat <удаленный_файл> [<локальный_файл> ]
Získání souboru, kde:
<удаленный_файл>
<локальный_файл> — název souboru na místním počítači .

glob
Přepínání metaznakové přípony názvů místních souborů.

hash
Přepíná výstup "#" pro každý přenesený datový blok.

Pomoc [ <команда> ]
Zobrazit informace nápovědy pro příkaz ftp, kde:
<команда> — Příkaz, jehož popis se zobrazí, pokud není zadán, budou vypsány všechny příkazy.

lcd [ <локальный_каталог> ]
Změna místního adresáře pracovního počítače, kde:
<локальный_каталог> — Název nového místního adresáře; pokud není zadán, použije se název aktuálního adresáře.

doslovný <команда_1> … <команда_n>

<команда_n> — příkazy k odeslání;

ls [<vzdálený_adresář>] [<místní_soubor>]
Zobrazí zkrácený obsah adresáře vzdáleného počítače, kde:
<удаленный_каталог> — adresář, jehož obsah bude zobrazen, pokud není zadán, použije se aktuální adresář;
<локальный_файл> — určuje místní soubor, který se má uložit do seznamu; pokud není zadán, seznam se zobrazí na obrazovce.

mdelete<vzdálený_soubor_1> … <vzdálený_soubor_n>
Smazání více souborů na vzdáleném počítači, kde:
<удаленный_файл_n> — názvy souborů k odstranění.

mdir<vzdálený_adresář_1> … <vzdálený_adresář_n> <místní_soubor>
Vytiskněte obsah několika adresářů na vzdáleném počítači, kde:
<удаленный_каталог_n> — adresář, jehož obsah bude zobrazen;
<локальный_файл> — určuje místní soubor, který se má uložit do seznamu; pokud není zadán, seznam se zobrazí na obrazovce.

mget <удаленный_файл_1> <удаленный_файл_n>
Příjem více souborů, kde:
<удаленный_файл_n> — vzdálený soubor ke kopírování.

mkdir <удаленный_каталог>
Vytvořte adresář na vzdáleném počítači, kde:
<удаленный_каталог> — název vzdáleného adresáře, který se má vytvořit.

mls<vzdálený_adresář_1> ... <vzdálený_adresář_n> <místní_soubor>
Vytiskněte zkrácený obsah několika adresářů na vzdáleném počítači, kde:
<удаленный_каталог_n> — adresář, jehož obsah bude zobrazen, pokud není zadán, použije se aktuální adresář;
<локальный_файл> — určuje místní soubor, který se má uložit do seznamu.

mput <локальный_файл_1> … <локальный_файл_n>
Odesílání více souborů, kde:
<локальный_файл_n> — název lokálních souborů, které budou zkopírovány.

výzva
Přepnout interaktivní nápovědu pro složené příkazy.

dát <локальный_файл> [<удаленный_файл> ]
Odeslání jednoho souboru, kde:
<místní_soubor>
<удаленный_файл>

pwd
Zobrazí pracovní adresář vzdáleného počítače.

přestat
Ukončete relaci ftp a přejděte na příkazový řádek.

citát <команда>
Pošlete libovolný ftp příkaz, kde:
<команда> — příkaz k odeslání.

rev <удаленный_файл> [<локальный_файл> ]
Načtení souboru pomocí aktuálního nastavení typu souboru, kde:
<удаленный_файл> — vzdálený soubor pro kopírování;
<místní_soubor> — název souboru na místním počítači .

vzdálená pomoc [ <команда> ]
Získání informací nápovědy o příkazech ve vzdáleném systému, kde:
<tým> — příkaz vzdáleného systému, pokud není zadán, zobrazí se seznam všech příkazů.

přejmenovat <имя_файла> <новое_имя_файла>
Přejmenování vzdálený soubor, kde:
<název souboru> — název souboru k přejmenování;
<nový_název_souboru> — nový název souboru.

rmdir <имя_каталога>
Odstranění adresáře na vzdáleném počítači, kde:
<název_adresáře> — název adresáře, který se má smazat.

poslat <локальный_файл> [<удаленный_файл> ]
Zkopírujte jeden soubor pomocí aktuálního nastavení typu souboru, kde:
<místní_soubor> — název místního souboru ke kopírování;
<удаленный_файл> — název souboru na vzdáleném počítači.

postavení
Zobrazuje aktuální stav ftp připojení.

stopa
Přepnout sledování paketů.

typ [ <имя_типа> ]
Nastavení typu přenosu souborů, kde:
<název_typu> — typ přenosu souborů; pokud není zadán, zobrazí se aktuální typ přenosu souborů.

uživatel <имя_пользователя> [<пароль> ] [<учетная_запись> ]
Odesílání informací pro připojení vzdálený počítač, kde:
<Uživatelské jméno> — uživatelské jméno pro připojení ke vzdálenému počítači;
<Heslo> — heslo pro zadané uživatelské jméno, pokud není zadáno, ale je vyžadováno pro připojení, příkaz ftp o něj uživatele požádá;
<Účet> Účet pro připojení ke vzdálenému počítači, pokud není zadán, ale je pro připojení vyžadován, příkaz ftp o to uživatele požádá;

podrobný
Přepínání režimu výstupu zpráv.


Podívejme se na malý příklad.

Nejprve napíšeme „body soubor“, který se nahraje na server webová stránka soubor data_souboru.dat z " C:\příklad". Algoritmus pro soubor bat bude následující:

  • Vytvořte soubor transport.txt se sekvencí příkazů ftp;
  • Spustíme příkaz ftp, přičemž jako parametry uvedeme vytvořený soubor;
  • Smazat transport.txt.

V tomto příkladu je název souboru a adresář pevně zakódován do souboru. To není vždy výhodné. Upravme soubor bat tak, aby přijímal data, která se mají načíst jako parametry, a také vložíme všechny měnitelné hodnoty do proměnných souboru. Získáme následující kód ():

V souladu s tím zkopírujte soubor data_souboru.dat z " C:\příklad" na server FTP v " Temp\Backup", budete muset spustit tento dávkový soubor a jako parametry zadat název souboru, místní a vzdálené adresáře.

Podobným způsobem můžete zapisovat soubory bat pro a na FTP server, stejně jako spustitelný soubor s libovolnou sadou instrukcí.

Pomohl vám tento článek?

Publikace na dané téma