मैं एक बनाने के लिए विंडोज बैच प्रोग्रामिंग का उपयोग कर रहा हूँएक FTP होस्ट के लिए FTP कनेक्शन उस मेजबान को स्वचालित रूप से अपलोड फ़ाइल। हालांकि, ftp कमांड में कमांड में उपयोगकर्ता नाम और पासवर्ड प्राप्त करने के लिए पैरामीटर नहीं है और मुझे इसे बाद के कमांड पर इनपुट करना होगा। बैच फ़ाइल को FTP कनेक्शन स्थापित करने के लिए कैसे इंतजार कर सकता है, उसके बाद बाद वाले ftp कमांड के लिए उपयोगकर्ता नाम और पासवर्ड गूंज सकता है? मदद के लिए धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 1ऐसा करने के लिए वास्तव में एक अलग तरीका है।
विंडोज़ ftp एक "-s स्वीकार करता है:फ़ाइल नाम "तर्क को चलाने के लिए आदेश शामिल हैं। आप उपयोगकर्ता नाम / पासवर्ड को" USER usernamenPASSWD "प्रारूप में संग्रहीत कर सकते हैं, और कनेक्शन स्थापित होने पर वे पहली चीज़ चलाएंगे।
फ़ाइल को बाद में हटाने के लिए सुनिश्चित करें, या बेहतर अभी तक एक अस्थायी फ़ाइल का उपयोग करें जो डिस्क को हिट नहीं करता है;)
संपादित करें: कूलकिड के लिए स्पष्टीकरण। इस वास्तव में है आपका जवाब (बैकअप जॉय के लिए धन्यवाद)।
स्पष्ट होने के लिए, आप यहां हैं।
की सामग्री upload.cmd
:
@echo off
set /p name= Username?
set /p pass= Password?
REM Give dummy data to the human-friendly FTP prompts
REM We will pass actual FTP commands in the next stanza
echo dummy > ftp_commands.txt
echo dummy >> ftp_commands.txt
echo USER %name% >> ftp_commands.txt
echo PASS %pass% >> ftp_commands.txt
echo PUT ftp_commands.txt >> ftp_commands.txt
ftp -s:ftp_commands.txt ftp.mydomain.com
चल रहा है upload.cmd
:
C:>upload.cmd
Username?anonymous
Password?foobar
Connected to ftp.mydomain.com.
220 2k-32-71-e Microsoft FTP Service (Version 5.0).
User (ftp.mydomain.com:(none)):
331 Password required for dummy .
530 User dummy cannot log in.
Login failed.
ftp> USER anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
230 Anonymous user logged in.
ftp> PUT ftp_commands.txt
200 PORT command successful.
उत्तर № 2 के लिए 1
आप कुछ डेटा को एक अस्थायी फ़ाइल में गूंज सकते हैं और फिर उस फ़ाइल को ftp कमांड के मानक इनपुट में रीडायरेक्ट कर सकते हैं। उदाहरण के लिए:
>file echo USERNAME
>>file echo.
>>file echo PASSWORD
>>file echo.
ftp < file
rem Now we can delete the file
del file
यदि आपको न्यूलाइन की आवश्यकता नहीं है (जब ftp प्रोग्राम क्रेडेंशियल्स के लिए पूछता है तो ENTER कुंजीपटल अनुकरण करने के लिए आवश्यक) तो आप एक अस्थायी फ़ाइल के बिना प्रबंधित कर सकते थे:
echo USERNAME | ftp