Kullanıcı etkileşimi olmadan tek bir komut satırında FTP sitesinden dosya indirme (Windows)


13

Windows'ta komut satırından çalıştırılabilen bir FTP komutu olduğunu biliyorum ve bir FTP sitesinden bir dosya indiriyor. Kullanıcı + şifresi "o" tek satır cmd'de belirtilir. Bu seçenekler + şifre geçişi bu komut satırında olmalıdır.

echo open 192.168.1.64 21> ftp.txt
echo anonymous>> ftp.txt
echo ftp@ftp.com>> ftp.txt
echo bin >> ftp.txt
echo get test.txt >> ftp.txt
echo bye >> ftp.txt

ftp -s:ftp.txt

FTP ile indirmeniz mi gerekiyor yoksa bu dosyayı herhangi bir programla mı indirmeniz gerekiyor? (Rsync, eşitlenecek adlara sahip bir dosyadan ve komut satırından okuyabilir. Scp bunu komut satırından da yapabilir. Her ikisi de düz metin, no_true_security FTP kadar eski değildir).
Hennes

Yanıtlar:


13

Bunu deneyin: Toplu dosyalar - Katılımsız FTP indirmeleri

WGET ftp://ftp.mydomain.com/path/file.ext  

anonim indirmeler için

veya:

WGET ftp://user:password@ftp.mydomain.com/path/file.ext  

kimlik doğrulaması gerektiğinde.


@XavierStuvw'un düzenlemeler ve yorumlar yoluyla işaret ettiği gibi, WGETbir küçük harfe geçmek linux'da wgetişe yarayacaktır.

wget ftp://user:password@ftp.mydomain.com/path/file.ext

Orada bir satırda kullanıcı ve şifre geçiş seçeneği olan herhangi bir komut görmüyorum.
soundhax

-s anahtarı hatırladığım gibi cümle oldu
soundhax

2
Süper Kullanıcıya Hoş Geldiniz! Bu teorik olarak soruyu cevaplayabilirken, cevabın temel bölümlerini buraya dahil etmek ve referans için bağlantı sağlamak tercih edilir.
Kanadalı Luke

1
@CalvT İtiraz yok. Yorumun öngörülen yararı, Linux kullanıcılarının bir internet aramasından sonra bu sayfaya gelip uygulandığı sistemi denetleyebilmeleridir. Aslında bu benim başıma geldi.
XavierStuvw

1
@CalvT Başlık gerçekten hassastır, ancak arama motorları genellikle tüm cevap çerçevesini görselleştirir ve buna sıçramak kolaydır. Tabii ki bu okuyucuya dikkat etmekten kaçınmamalı, ancak bu durumda Linux ve Windows talimatlarının temelde aynı olması tesadüf oldu. Aferin, teşekkürler.
XavierStuvw

8

Yolu buldum:

echo open 192.168.0.1 >> ftp &echo user admin w00t >> ftp &echo binary >> ftp &echo get file.zip >> ftp &echo bye >> ftp &ftp -n -v -s:ftp &del ftp

Denediğimde bu işe yaramadı ( bunun yerine WinSCP'nin komut satırı istemcisini kullandım ). Hangi Windows sürümü üzerinde test edildi?
Peter Mortensen

Bu çizginin nasıl çalıştığını açıklayabilir misiniz? Herhangi bir doküman bulunamadı. Ben PSFtp ile çalışmak yapmaya çalışıyorum
stallingOne

@stallingOne &Bir satır kesicisi olarak düşünün ... aslında çoklu komutlar. Temelde bir komut satırı, satır satır, kullanarak oluşturur echove ftpçalıştırmasını söyler . Komut dosyasını ftpda adlandırıyor , bu da kafa karıştırıcı.
Havenard

Kötü dosya adı seçimi. "ftp" hem oluşturduğu komut dosyasının dosya adı hem de exe'nin adıdır. Yani yol çözünürlüğü ftp -n -v -s:ftpbiraz gergin. ("Ftp" nin her kullanımı farklı şeyleri ifade eder)
Chad Schouggins

2

/? Komutunu kullanarak DOS'ta bir komutun sözdizimini isteyebileceğinizi unutmayın. değiştirmek. Örneğin:

C: \> ftp /?

FTP sunucusu hizmeti çalıştıran bir bilgisayara dosya aktarır
(bazen arka plan programı olarak da adlandırılır). Ftp etkileşimli olarak kullanılabilir.

FTP [-v] [-d] [-i] [-n] [-g] [-s: dosyaadı] [-a] [-A] [-x: sendbuffer] [-r: recvbuf
fer] [-b: eşzamansızlar] [-w: pencere boyutu] [ana bilgisayar]

  -v Uzak sunucu yanıtlarının görüntülenmesini engeller.
  -n İlk bağlantıdan sonra otomatik girişi engeller.
  -i Birden fazla dosya sırasında etkileşimli istemi kapatır
                  transferler.
  -d Hata ayıklamayı etkinleştirir.
  -g Dosya adı globbingini devre dışı bırakır (bkz. GLOB komutu).
  -s: dosyaadı FTP komutları içeren bir metin dosyası belirtir; 
                  komutları FTP başladıktan sonra otomatik olarak çalışır.
  -a Veri bağlantısı bağlanırken herhangi bir yerel arabirimi kullanın.
  - Anonim olarak bir giriş.
  -x: send sockbuf 8192 varsayılan SO_SNDBUF boyutunu geçersiz kılar.
  -r: recv sockbuf 8192 varsayılan SO_RCVBUF boyutunu geçersiz kılar.
  -b: zaman uyumsuz sayısı 3 varsayılan zaman uyumsuz sayısını geçersiz kılar
  -w: windowsize 65535 varsayılan aktarma arabellek boyutunu geçersiz kılar.
  ana bilgisayar Uzaktan kumandanın ana bilgisayar adını veya IP adresini belirtir
                  bağlanılacak ana bilgisayar.

Notlar:
  - mget ve mput komutları yes / no / quit için y / n / q alır.
  - Komutları iptal etmek için Control-C tuşlarını kullanın.

Sizin durumunuzda, giriş yanıtları da dahil olmak üzere, komut dosyasını beslemek için -s anahtarını kullanmak istersiniz.

Örneğin:

  1. Aşağıdaki içeriğe sahip bir komut dosyası (c: \ scriptfile.txt) oluşturun:

    open
    servername_or_ip
    username
    password
    get
    /fullpath/thefile.txt
    c:\fullpath\thefile.txt
    quit
    
  2. ftp'yi -s anahtarıyla yürütün ve kod dosya adını belirtin

    C:\>ftp -s:c:\scriptfile.txt
    

Windows XP'de (evet, evet, biliyorum) bu "Bilinmeyen ana makine /?"
Peter Mortensen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.