2013-05-08 5 views
11

के लिए बैच फ़ाइल मेरे पास मेरे स्थानीय पीसी से फ़ाइल को एसएफटीपी के माध्यम से सर्वर पर ले जाने के लिए बैच फ़ाइल है। मेरे पास मेरे सिस्टम में पुटी स्थापित है और बैच फ़ाइल कोड निम्नानुसार है।पुटी/पीएसएफटीपी फाइल ट्रांसफर ऑटोमेशन

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 

उपरोक्त कोड पूरी तरह से काम करता है जब मैं कमांड प्रॉम्प्ट में टाइप करता हूं। लेकिन जब मैं .bat फ़ाइल को डबल क्लिक करता हूं और इसे चलाता हूं, तो यह नहीं चल रहा है और उपयोगकर्ता नाम और पासवर्ड दर्ज करने के लिए कह रहा है। मेरा उद्देश्य पूरी चीज को स्वचालित करना था और मुझे .bat फ़ाइल पर क्लिक करके इसे चलाने की ज़रूरत है। लेकिन इसे हासिल करने में सक्षम नहीं हूं। कोई भी विचार या स्निपेट मेरी मदद करेगा।

उत्तर

18

आप -b स्विच का उपयोग करने के लिए psftp एक अलग फ़ाइल में PSFTP लिपि (open से bye लिए लाइनों) की दुकान और है कि पारित करने के लिए की जरूरत है:

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

कहाँ script.txt माना जाता है C:\Program Files (x86)\PuTTY में किया जाना है। वैकल्पिक रूप से एक पूर्ण पथ प्रदान करें (डबल-कोट्स के पथ को संलग्न करने के लिए मत भूलना, विशेष रूप से यदि इसमें रिक्त स्थान हैं। आपको इसे अपने cd कमांड के साथ भी बेहतर करना चाहिए)।

संदर्भ:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter6.html#psftp-option-b


संपादित करें: यदि आप एक बैच फ़ाइल में psftp आदेशों का उपयोग नहीं कर सकते हैं के रूप में, एक ही कारण के लिए, आप उपयोगकर्ता नाम और psftp आदेशों के रूप में पासवर्ड निर्दिष्ट नहीं कर सकते: उपयोगकर्ता नाम + पासवर्ड के लिए । ये open कमांड में इनपुट हैं। जबकि आप open कमांड (open <user>@<IP>) के साथ उपयोगकर्ता नाम निर्दिष्ट कर सकते हैं, तो आप इस तरह से पासवर्ड निर्दिष्ट नहीं कर सकते हैं। यह केवल psftp कमांड लाइन पर किया जा सकता है। तो यह शायद कमांड लाइन पर सब करने के लिए क्लीनर है:

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

और अपने script.txt से open, <user> और <PW> लाइनों को हटा दें।

संदर्भ:
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


क्या आप एटीएम कर रहे हैं कि आप किसी भी पैरामीटर या आदेशों के बिना psftp चलाया जाता है। एक बार जब आप इसे बाहर निकलेंगे (जैसे bye टाइप करके), आपकी बैच फ़ाइल open कमांड (और अन्य) चलाने की कोशिश कर रही है, जो विंडोज शैल स्पष्ट रूप से समझ में नहीं आता है।

+0

हाय मार्टिन, त्वरित उत्तर के लिए धन्यवाद। मैंने जैसा कहा है मैंने संशोधित किया है। मेरी स्क्रीन अब इस तरह लटकती है। सी: \ प्रोग्राम फ़ाइलें (x86) \ PUTTY> "सीडी सी: \ प्रोग्राम फ़ाइलें (x86) \ PUTTY" फ़ाइल नाम, निर्देशिका नाम, या वॉल्यूम लेबल वाक्यविन्यास गलत है C: \ Program Files (x86) \ PUTTY> psftp - बी script.txt psftp: कोई होस्टनाम निर्दिष्ट नहीं है; लॉगिन को जोड़ने के लिए "open host.name" का उपयोग करें: – suresh

+0

1) यह 'सीडी" सी: \ ... \ PUTTY "' 2) मेरे उत्तर में संपादित करें –

+0

यह पूरी तरह से चल रहा है, धन्यवाद। – suresh

संबंधित मुद्दे