2013-05-08 16 views
11

Yerel bilgisayarımdan SFTP'ye dosya aktarmak için bir toplu iş dosyası var. Sistemimde PuTTY var ve toplu dosya kodu takip ediyor.PuTTY/PSFTP dosya aktarımı otomasyonu için toplu iş dosyası

cd C:\Program Files (x86)\PuTTY 
psftp 
open <IP> 
<user> 
<PW> 
cd /home/irisuser/iris/integration/dls_dlsblr_dlschnn_in_msg/in 
lcd d:\ 
put log.sh 
bye 

Yukarıdaki kod, komut istemine yazdığımda mükemmel çalışır. Ancak, .bat dosyasını çift tıklatıp çalıştırdığımda, çalışmıyor ve kullanıcı adı ve parola girilmesini istiyor. Amacım her şeyi otomatikleştirmek ve sadece .bat dosyasını tıklatarak çalıştırmam gerekiyordu. Ama bunu başaramıyorum. Herhangi bir fikir veya parçacık bana yardımcı olacaktır.

cevap

18

Sen -b anahtarını kullanarak psftp için ayrı bir dosyaya psftp komut (open den bye için çizgiler) depolamak ve o geçmesi gerekiyor: script.txt varsayılır

cd "C:\Program Files (x86)\PuTTY" 
psftp -b script.txt 

C:\Program Files (x86)\PuTTY olmak. Alternatif olarak tam bir yol sağlayın (özellikle boşluk içeriyorsa, çift tırnaklara giden yolu kapatmayı unutmayın. Bunu, cd komutunuzla da daha iyi yapmalısınız).

Referans:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter6.html#psftp-option-b


DÜZENLEME: Aynı nedenden dolayı, bir toplu iş dosyasında psftp komutlarını kullanamazsınız gibi, kullanıcı adı ve psftp komutları olarak parola belirleyemezsiniz: kullanıcı adı + şifre için . Bunlar, open komutunun girdisidir. Kullanıcı adını open komutuyla (open <user>@<IP>) belirtebilirsiniz, ancak bu şekilde şifreyi belirleyemezsiniz. Bu, yalnızca psftp komut satırında yapılabilir.

cd "C:\Program Files (x86)\PuTTY" 
psftp -b script.txt <user>@<IP> -pw <PW> 

Ve script.txt den open, <user> ve <PW> satırları kaldırın: Sonra komut satırında her şeyi muhtemelen daha temiz.

Referans:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter6.html#psftp-starting
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-pw


Ne atm yapıyoruz herhangi bir parametre veya komutlar olmadan psftp çalıştırmak olmasıdır. Çıktıktan sonra (bye yazarak), toplu iş dosyanız, Windows kabuğunun açık bir şekilde anlamadığı open komutunu (ve diğerlerini) çalıştırmaya çalışmaya devam eder.

+0

Merhaba Martin, Hızlı cevap için bir ton teşekkürler. Söylediğin gibi değiştirdim. Ekranım şimdi bu şekilde kalıyor. C: \ Program Dosyaları (x86) \ PuTTY> "cd C: \ Program Dosyaları (x86) \ PuTTY" Dosya adı, dizin adı veya birim etiketi sözdizimi yanlış C: \ Program Dosyaları (x86) \ PuTTY> psftp - b script.txt psftp: belirtilen ana makine adı yok; giriş bağlanmak için "open host.name" kullanın: – suresh

+0

1) Bu 'cd "C: \ ... \ PuTTY" '2) Benim cevabımda düzenleme görmek –

+0

Onun mükemmel çalışıyor, teşekkürler. – suresh

İlgili konular