2011-03-02 15 views
11

मेरे पास एक बैच स्क्रिप्ट है जो गतिशील रूप से कुछ फ़ाइलों को बनाता है और समय, दिनांक इत्यादि के आधार पर कुछ फ़ाइलों को यादृच्छिक फ़ाइल नामों के साथ उत्पन्न करती है। इसके बाद उसे उस फ़ाइल को FTP पर सर्वर पर अपलोड करने की आवश्यकता होती है।क्या एक चर को एक विंडोज एफ़टीपी स्क्रिप्ट फ़ाइल में पास करना संभव है?

अभी के अनुसार, मेरी .bat फ़ाइल में "ftp -s: ftp.txt" जैसी रेखा है। Ftp.txt काफी कुछ सरल एफ़टीपी स्क्रिप्ट सामान शामिल हैं: this--

open ftp.myserver.com 
username 
password 
put filename1.dat 
put filename2.dat 
put filename3.dat 
put filename4.dat 

की तरह कुछ मैं क्या करना चाहते हैं क्या फ़ाइल नाम अपलोड करने की आवश्यकता है कि में पास और फिर की जगह "filename1.dat डाल" है "put% file1%" के साथ - जहां% file1% फाइलनाम चर पारित किया जा रहा है।

क्या यह संभव है? किसी को पता है कि यह कैसे करें? या मेरा पूरा दृष्टिकोण गलत है?

+0

.bat फ़ाइलें चर का उपयोग कर सकते हैं। वे लूप कर सकते हैं। वे एक पाठ फ़ाइल की प्रत्येक पंक्ति पर फिर से शुरू कर सकते हैं। बहुत सारे विकल्प –

+0

समस्या यह है कि ftp.txt बैच फ़ाइल नहीं है, यह कमांड की एक श्रृंखला है जिसे FTP क्लाइंट में पाइप किया जाएगा। –

+0

@Marc अगर उसके पास बैच स्क्रिप्ट है, तो SuperNES ftp.txt –

उत्तर

15

आप अपनी बैट फ़ाइल के साथ फ्लाई पर ftp.txt फ़ाइल जेनरेट कर सकते हैं।

echo ftp.myserver.com>ftp.txt 
echo username>>ftp.txt 
echo password>>ftp.txt 
echo put filename1.dat>>ftp.txt 
echo put filename2.dat>>ftp.txt 
echo put filename3.dat>>ftp.txt 
echo put filename4.dat>>ftp.txt 
ftp -s:ftp.txt 
बेशक

अब है कि आप बल्ला फ़ाइल आप "filenameX.dat" के स्थान पर वातावरण चर और अन्य सामग्री का उपयोग कर सकते

उदाहरण के लिए कर रहे हैं:

echo put %file1% >>ftp.txt 
आप कुछ पसंद है
+0

यह काम किया। धन्यवाद! – SuperNES

+0

'>>' से पहले कोई जगह न डालें अन्यथा टेक्स्ट फ़ाइल में मुद्रित एक स्थान होगा, पासवर्ड को बर्बाद कर देगा। मुझे अतिरिक्त स्थान के बिना 'गूंज पासवर्ड >> ftp.txt' का उपयोग करना पड़ा। – degenerate

+1

@degenerate: तय, धन्यवाद! –

0

मुझे नहीं लगता कि विंडोज़ में कमांड लाइन एफ़टीपी क्लाइंट कमांड पर पर्यावरण/खोल परिवर्तनीय इंटरपोलेशन करने के लिए पर्याप्त स्मार्ट है। लेकिन आपके पास नियंत्रण हो सकता है .bat फ़ाइल गतिशील रूप से ftp स्क्रिप्ट उत्पन्न करती है, और जब भी आप शैल स्तर पर हों तो वेरिएबल सामान करें।

2

उत्तर को अपडेट करने के लिए, यहां एक अद्यतन बैच फ़ाइल है। उपयोगकर्ता नाम और पासवर्ड के बाद अंतरिक्ष के बहिष्करण पर ध्यान दें (क्योंकि यह FTP साइट पर एक स्थान पास करता है)। यह बैच फ़ाइल को पास किए गए तर्क का भी उपयोग करेगा।

echo open ftp.myserver.com>ftp.txt 
echo username>>ftp.txt 
echo password>>ftp.txt 
echo put %1>>ftp.txt 
echo quit>>ftp.txt 
ftp -s:ftp.txt 
संबंधित मुद्दे