मैं एक virtualenv स्थानांतरित कर सकते हैं?


93

यह प्रश्न डुप्लिकेट नहीं है।

यह न केवल एक आभासी वातावरण का नाम बदलने से संबंधित है, बल्कि वास्तव में इसे एक अलग निर्देशिका में स्थानांतरित कर रहा है, जिसमें एक संभावित उपयोगकर्ता की निर्देशिका भी शामिल है।

यह केवल एक आभासी वातावरण का नाम बदलने के समान नहीं है, विशेष रूप से virtualenvs से अपरिचित लोगों के लिए।

यदि मैं एक virtualenv बनाता हूं, और मैं इसे एक अलग फ़ोल्डर में स्थानांतरित करता हूं, तो क्या यह अभी भी काम करेगा?

$ virtualenv -p /usr/bin/python3 /home/me/Env/my-python-venv
$ source Env/my-python-venv/bin/activate
(my-python-venv) $ 

... बाद में उस दिन, आभासी वातावरण MOVED ...

(my-python-venv) $ deactivate
$ mkdir -p /home/me/PeskyPartyPEnvs
$ mv /home/me/Env/my-python-venv /home/me/PeskyPartyPEnvs/

सवाल:

यह काम करेगा?

$ source /home/me/PeskyPartyPEnvs/my-python-venv/bin/activate
(my-python-venv) $ /home/me/PeskyPartyPEnvs/my-python-venv/bin/pip3 install foaas

मेरा मतलब है कि यह कोशिश करने की बुद्धि के बारे में एक सवाल के रूप में कम है (जब तक कि यह ज्ञान हास्य नहीं है, निश्चित रूप से), और इसके बारे में और अधिक संभव है। मैं वास्तव में जानना चाहता हूं कि क्या पायथन 3 में ऐसा करना संभव है, या क्या मुझे सिर्फ इसे चूसना और इसे क्लोन करना है।

क्या मैं बिना दुख के बस mvएक ऐसा ही कर सकता हूं virtualenv? मैं उदासी से बचना चाहता हूं।

जवाबों:


70

हाँ। इसे एक ही मंच पर स्थानांतरित करना संभव है। आप --relocatableमौजूदा वातावरण पर उपयोग कर सकते हैं ।

से --help:

--relocatable - एक आकर्षक virtualenv पर्यावरण relocatable बनाओ। यह स्क्रिप्ट को ठीक करता है और सभी .pth फ़ाइलों को सापेक्ष बनाता है।

फिर भी, यह activateस्क्रिप्ट को बदलने के लिए प्रतीत नहीं होता है , और केवल pip*और easy_install*स्क्रिप्ट को बदलता है । में activateस्क्रिप्ट, $VIRTUAL_ENVवातावरण चर मूल रूप hardcoded /path/to/original/venv$VIRTUAL_ENVचर सेट करने के लिए प्रयोग किया जाता है PATHतो यह आदेश कॉल करने के लिए में नए स्थान के आधार परिवर्तित किया जाना चाहिए, आपके सक्रिय पर्यावरण की भी pythonऔर pipआदि निरपेक्ष पथ के बिना।

इस समस्या को ठीक करने के लिए, आप स्क्रिप्ट $VIRTUAL_ENVमें पर्यावरण चर को बदल सकते हैं activate(उदाहरण के लिए उपयोग कर रहे हैं sed), और सब कुछ अच्छा होना चाहिए।

उपयोग का एक उदाहरण:

$ cd ~/first
$ virtualenv my-venv
$ grep 'VIRTUAL_ENV=' my-venv/bin/activate
VIRTUAL_ENV="/home/username/first/my-venv"
$ virtualenv --relocatable my-venv
Making script my-venv/bin/easy_install relative
Making script my-venv/bin/easy_install-2.7 relative
Making script my-venv/bin/pip relative
Making script my-venv/bin/pip2 relative
Making script my-venv/bin/pip2.7 relative
### Note that `activate` has not been touched
$ mkdir ~/second
$ mv my-venv ~/second
$ cd ~/second
$ grep 'VIRTUAL_ENV=' my-venv/bin/activate
VIRTUAL_ENV=/home/username/first/my-venv
### (This variable hasn't been changed, it still refers to the old, now non-existent directory!)
$ sed -i -e 's|username/first|username/second|' my-venv/bin/activate
## sed can be used to change the path.
## Note that the `-i` (in place) flag won't work on all machines. 
$ source my-venv/bin/activate 
(my-venv) $ pip install foass
...
(my-venv) $ python 
[...]
> import foass

हुर्रे, अब आप चीजों को स्थापित कर सकते हैं और उन्हें अपने नए स्थित आभासी वातावरण में लोड कर सकते हैं।


//, एचएम। यह वास्तव में इन relocatable बनाने के लिए प्रतीत नहीं होता है। मुझे उनके "सामान्य" स्क्रिप्ट फ़ाइलों के नहीं होने के बारे में कुछ त्रुटि मिलती रहती है।
नाथन बसानी

7
"- therelocatable विकल्प में वर्तमान में कई समस्याएं हैं, और सभी परिस्थितियों में काम करने की गारंटी नहीं है। यह संभव है कि विकल्प को
वर्चुअन के

1
मैंने इसे विंडोज़ पर आज़माया और त्रुटि सभी लिपियों (* .py, * .bat, * .ps1) को Scriptsdir ( binnix पर बराबर ) में सूचीबद्ध करती है और कुछ ऐसा कहती है जैसे activate.ps1 cannot be made relative (it's not a normal script that starts with #!c:\..python.exe.मूल रूप से यह शिकायत है कि फ़ाइल में हैश-बैंग शीर्ष लेख वर्तमान वर्चुअन के python.exe नहीं है, यह वही है जिसे मैंने इसे -इस तय से स्थानांतरित किया है। मैंने उस पॉश लिपि में देखा और यह पहले से ही वैसे भी अपना रास्ता खोज लेती है - अच्छा। कुछ अन्य लिपियाँ या तो पथों पर निर्भर नहीं होती हैं (उदाहरण के लिए निष्क्रिय करें), इसलिए संक्षेप में, यह काम करता है।
दावोस

2
@NathanBasanese संदेश activate.ps1 cannot be made relativeको अनदेखा किया जा सकता है क्योंकि वह स्क्रिप्ट पहले से ही सापेक्ष है। संदेश विंडोज़ में मददगार नहीं है, क्योंकि स्क्रिप्ट #!लिनक्स में निर्देशों का उपयोग नहीं करती हैं ताकि यह बताया जा सके कि किस एप्लिकेशन को इसे निष्पादित करना चाहिए। activate.batसंशोधित करता नहीं मिल, लेकिन यह (कम से कम खिड़कियां 10 पर, बुला प्रयोग किया जाता है नहीं activateकी शुरूआत पॉश लिपि) इसलिए कोई मैं संपादित करने के लिए किसी भी स्क्रिप्ट जरूरत नहीं थी। समस्या यह है pip.exeकि हार्ड-कोडित करने के लिए एक पथ है और एक हेक्स-संपादक, या सिर्फ एक पुनर्स्थापना के साथ संपादन की आवश्यकता है।
दावोस

3
@Sgedda प्रतिशोध में मैं कहूंगा कि यह मत करो। आपके अजगर के वातावरण को आसानी से pip freezeआवश्यकताओं की एक न्यूनतम फ़ाइल का उपयोग करके पुनः-सक्षम किया जाना चाहिए ताकि आप आसानी से अपने सभी पैकेजों को पुनः स्थापित कर सकें, डॉकटर (उस पर स्थापित वर्चुअन के साथ अच्छी तरह से काम करता है), कोंडा, पाइनव या कुछ अन्य उपकरण। आपको वातावरण को अपरिवर्तनीय बुनियादी ढांचे के रूप में बनाने और नष्ट करने में सक्षम होना चाहिए, उन्हें कीमती नहीं होना चाहिए।
दावोस

19

पायथन 3.3+ के लिए (नए venvबिल्ट-इन मॉड्यूल के साथ)

संक्षिप्त उत्तर (संस्करण की परवाह किए बिना):

  • वर्चुअल वातावरण को स्थानांतरित करने का कोई साफ, सीधा तरीका नहीं है
  • बस फिर से बनाना, यह आसान है !!


लंबा जवाब:

पायथन v3.3 के रूप में, virtualenvएक अंतर्निहित मॉड्यूल नाम का बन गया है venv

--relocatableविकल्प अन्य उत्तर में वर्णित में शामिल नहीं किया गया है venv, और वर्तमान में अच्छा नहीं, सुरक्षित तरीका है कि मैं या तो नाम बदलने के लिए के बारे में पता कर रहा हूँ या एक अजगर आभासी वातावरण स्थानांतरित होती है।

हालांकि, एक आभासी वातावरण को फिर से बनाने के लिए एक सरल तरीका है, इसके सभी मौजूदा स्थापित पैकेजों के साथ। इस उत्तर को देखें , या आभासी वातावरण को फिर से बनाने के लिए नीचे दिए गए अनुभाग को देखें। प्रक्रिया के दौरान आप नए वातावरण को जो भी स्थान में और जिस भी नाम से आप चाहते हैं, को फिर से बना सकते हैं। या प्रक्रिया के लिए नीचे दिया गया अनुभाग देखें।

उस जवाब में, वह कुछ अन्य 3 पार्टी पैकेजों का उल्लेख करता है जो प्रत्यक्ष नाम या चाल का समर्थन कर सकते हैं। यदि आप एक आभासी वातावरण को स्थानांतरित करने के तरीके को आगे बढ़ाने पर बसे हैं, तो आप देख सकते हैं कि क्या वे साथ काम करते हैं venv

नोट: उस उत्तर में, इसके virtualenvबजाय पर केंद्रित है venv। अनुवाद कैसे करें, इसके लिए नीचे देखें।



venvबनाम पुरानी virtualenvकमांड सिंटैक्स

उपयोग करने के लिए आदेश venvहै:

python -m venv

बजाय सिर्फ virtualenv, जो मूल पैकेज में एक कमांड के रूप में स्थापित होता है। हालांकि "अजगर" संदर्भित करता है, हालांकि आप अपने अजगर को निष्पादन योग्य चलाते हैं, जो विभिन्न प्रकार की चीजें हो सकती हैं, जैसे:

  1. python
  2. pyया py -3.7इसी तरह ( पायथन लॉन्चर फॉर विंडोज विथ पायथन 3.3+ और विंडोज फिलहाल)
  3. python3 (लिनक्स वातावरण के लिए सम्मेलन कि अजगर 2 और 3 को स्थापित करते हैं)
  4. यदि आपको समस्या हो रही है, तो जिस पथ को आप चलाना चाहते हैं, उसके लिए पूर्ण पथ का उपयोग करें: उदा c:\program files\python37\python.exe

यदि आप अनिश्चित हैं कि कौन सा संस्करण चलाया जा रहा है, तो आप हमेशा python --versionपता लगा सकते हैं ।



एक आभासी वातावरण को फिर से कैसे बनाया जाए

वर्चुअल वातावरण बनाना / फिर से बनाना आसान है और आपके साथ थोड़ा सा काम करने के बाद दूसरा स्वभाव बनना चाहिए। इस प्रक्रिया में यह दिखाया गया है कि आप अपनी स्क्रिप्ट को पैकेज के रूप में वितरित करने के लिए क्या करेंगे (इसकी निर्भरता के साथ), और फिर आगे के विकास के लिए आपकी स्क्रिप्ट / पैकेज को स्थापित करने के लिए कोई क्या करेगा।

सबसे पहले, आभासी वातावरण में क्या है की एक अद्यतन सूची प्राप्त करें। इसके सक्रिय होने से, पायथन संस्करण का उपयोग करें और एक फाइल पर निर्भरता की सूची को बचाएं।

  1. python --versionआभासी पर्यावरण के साथ प्रयोग करके देखें कि वह पायथन के किस संस्करण का उपयोग कर रहा है।

    • यह स्पष्टता के लिए है - आप विभिन्न कारणों से पायथन संस्करण को अपडेट करना चाह सकते हैं - कम से कम नवीनतम पैच संस्करण के लिए
    • उदाहरण के लिए, यदि मौजूदा वेन पायथन v3.7.4 का उपयोग कर रहा है, लेकिन अब v3.7.6 बाहर है - इसके बजाय v3.7.6 का उपयोग करें, जिसमें केवल गैर-ब्रेकिंग सुरक्षा और बग फिक्स शामिल होना चाहिए।
  2. का प्रयोग करें python -m pip freeze > requirements.txtमौजूदा पैकेज निर्भरता की सूची बनाने के लिए और उन्हें में डाल दिया requirements.txtफ़ाइल। यह कमांड निश्चित रूप से लिनक्स या गिट बैश में काम करता है - विंडोज में पॉवर्सशेल या कमांड लाइन के बारे में 100% निश्चित नहीं है।

अब एक नया आभासी वातावरण बनाएं और फिर पुराने से निर्भरता जोड़ें।

  1. अपना नया वेनव बनायें।

    • सुनिश्चित करें कि आप अजगर के सही संस्करण का उपयोग कर रहे हैं जिसे आप वेव में स्थापित करना चाहते हैं।
    • यदि आप चाहते हैं कि यह बिल्कुल वही पायथन संस्करण हो:
      • अजगर को वर्तमान आभासी वातावरण से सीधे चलाएं (इसके साथ सक्रिय), और केवल pythonकमांड के रूप में उपयोग करें
      • या python.exeवर्चुअल एनवायरनमेंट फोल्डर में एक निरपेक्ष पथ का उपयोग करें
    • आदेश में नए venv फ़ोल्डर प्रविष्टि के लिए:
      • या तो वांछित अंतिम फ़ोल्डर स्थान के लिए एक पूर्ण या सापेक्ष पथ जोड़ें।
      • python -m venv my_new_venvएक नया my_new_venvफ़ोल्डर में एक नया आभासी वातावरण बनाने के लिए वर्तमान वर्किंग डायरेक्टरी में उपयोग करें ।
      • वेनव फोल्डर का नाम वेनव का नाम होगा (जो सक्रिय होने पर संकेत दिखाता है)।
  2. requirements.txtफ़ाइल से अपनी निर्भरता स्थापित करें ।

    • python -m pip install -r requirements.txt

आपको स्थानीय पैकेजों को फिर से स्थापित करने की आवश्यकता हो सकती है जो विकास मोड में हैं।

ध्यान दें, यदि आपको कभी विशिष्ट स्थान देखने की आवश्यकता हो तो पैकेज का उपयोग करने के लिए स्थापित किया गया है:

  • python -m pip list -v
  • -vया "वर्बोज़" विकल्प प्रत्येक पैकेज है कि स्थापित किया गया है, पथ उस में स्थापित किया गया है सहित के बारे में कुछ अतिरिक्त जानकारी जोड़ देगा। यह सीधे सुनिश्चित करें कि आप रख रहे हैं आभासी, उपयोगकर्ता, और सिस्टम इंस्टॉल किए गए पैकेज बनाने के लिए उपयोगी है।

इस बिंदु पर आप केवल पुराने venv फ़ोल्डर और सभी सामग्रियों को हटा सकते हैं। मैं इसके लिए एक GUI का उपयोग करने की सलाह देता हूं - फ़ाइल विलोपन अक्सर लिनक्स कमांड लाइन से स्थायी होते हैं, और एक छोटा टाइपो बुरी खबर हो सकती है।


क्या वेव पाइप स्टेट को कॉपी करने का कोई तरीका नहीं है , यानी पाइप के साथ सभी पुस्तकालयों को फिर से डाउनलोड किए बिना?
एडीओ

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

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

@RichardRast यह एक अलग समस्या है, मैं मूल प्रश्न का उत्तर दे रहा हूं। नोट: आपके मुद्दे के समाधान हैं (ज़िप के रूप में पैकेज डाउनलोड करें और स्थानीय रूप से इंस्टॉल करें, अपने फ़ायरवॉल आदि के पीछे एक PyPi दर्पण सर्वर चलाएं), लेकिन यह सही नहीं है: इसके लिए Q & A ..
LightCC

2
आप अपने सभी पैकेजों से पहियों का निर्माण कर सकते हैं pip wheel . -w wheelsऔर फिर नए वर्चुअल वातावरण में पैकेजों को फिर से स्थापित कर सकते हैंpip install --no-index --find-links /path/to/wheels/ -r requirements.txt
np8

7

--relocatableकरने के लिए तर्क virtualenvलगता है कि आप ऐसा करने की अनुमति है।


//, क्या यह सिर्फ सापेक्ष रास्तों पर निर्भर करता है, या यह किसी भी तरह से बंदर करता है अन्यथा?
नाथन बसानी

1
--relocatable केवल मौजूदा आभासी वातावरण काम करता है। virtualenv --relocatable my-python-venvपहले से मौजूद पर्यावरण को चलाएं ।
hilcharge

1
से --help: This fixes up scripts and makes all .pth files relative। नहीं, यह प्लेटफॉर्म को स्वतंत्र लाइब्रेरी बनाने के लिए नहीं है। यदि आप इसे किसी भिन्न प्लेटफ़ॉर्म पर ले जाना चाहते हैं, तो आपको स्थानीय अजगर के आधार पर इसे फिर से स्थापित करना होगा।
hilcharge

5
python3 venv मॉड्यूल इस ध्वज का समर्थन नहीं करता है
नेल्सन

7

लेकिन अफसोस:

नहीं, आप बस नहीं कर सकते mv। वर्कअराउंड हैं, लेकिन इसे पुनर्स्थापित करना आसान हो सकता है।

(my-python-venv)$ /home/me/PeskyPartyPEnvs/pip3 install foaas
zsh: /home/me/PeskyPartyPEnvs/pip3: bad interpreter: /home/me/Env/my-python-venv/bin/python3: no such file or directory
(my-python-venv)$ deactivate
$ 

... enterहताशा में बहुत दबाता है, और निम्नलिखित काम करता है

$
$
$ pip3 search foaas

सिवाय इसके नहीं है my-python-venv, उदासी मिटाओ।

mvअपने को चाहते हैं virtualenvऔर इसका उपयोग करते हैं, अन्यथा अनमॉडिफाइड?

संक्षिप्त जवाब:

मैं बोरोमिर को यह कहने दूंगा, ताकि वह इसे स्पष्ट कर सके:

खैर, हां नहीं कर सकते


2
जब तक आप गैरी प्राप्त नहीं करना चाहते हैं और इसे उचित रूप से संशोधित करना चाहते हैं: यह बिन में बायनेरिज़ में लिंक हैं जो आंदोलन की समस्या का कारण बनते हैं। यदि आप जानते हैं कि आप कहां से आए हैं तो आप find bin -type f -exec ex -sc "%s,${FROM},${PWD},g|x" {} \;अपने बिन और लेबर को संभालने के लिए कुछ का उपयोग कर सकते हैं । मैं इसे कई त्वरित और गंदे तरीके के रूप में उपयोग करता हूं और बहुत सारे पाइप पैकेजों के साथ python3 वर्चुअल एनवीएस को कॉपी और स्थानांतरित करने के लिए।
पॉल व्हिप

1
@PaulWhipp उस कमांड बनाम सिर्फ उपयोग करने का कोई लाभ है --relocatable? इसके अलावा, नाथन, महान सवाल लेकिन यह एक भयानक जवाब है। अपने स्वयं के उत्तर को स्वीकार करना हमेशा थोड़ा पक्षपाती होता है, जब तक कि यह अच्छी तरह से लिखा और स्पष्ट रूप से विकल्पों की गणना नहीं करता है, लेकिन यह निर्धारित करना कि स्वयं वैसे भी व्यक्तिपरक होगा।
दावोस

1
@Davos --relocatable मेरे लिए काम नहीं करता था, लेकिन मैं नियमित रूप से बायनेरिज़ को हैक करके python3 venvs को स्थानांतरित करता हूं और अब तक मुझे कोई समस्या नहीं हुई है।
पॉल व्हिप

1
मैं संकेत दे रहा था कि आपको एक अलग (यानी आपका नहीं) उत्तर को स्वीकार करना चाहिए शायद लोगों द्वारा चुना गया: D
दावोस

3
सवाल था "क्या मैं बस mvएक वेव सकता हूं ?", और जवाब है "नहीं, आप बस नहीं कर सकते mvहैं, वर्कअराउंड हैं लेकिन इसे फिर से स्थापित करना आसान हो सकता है"। यदि यह शीर्ष उत्तर होता, तो यह मुझे और दूसरों को कुछ समय बचा लेता।
निकोले

5

हां, यह संभव होना चाहिए अगर आपने कुछ भी नहीं किया है जो वर्चुअनव की वर्तमान निर्देशिका पर निर्भर करता है।

हालाँकि, यदि आपके पास विकल्प है, तो नई वर्चुअन बनाने के लिए सबसे अच्छी बात है और इसके बजाय नए वर्चुअन का उपयोग करना शुरू करें। यह सबसे सुरक्षित विकल्प है और बाद में मुद्दों के कारण कम से कम होने की संभावना है।

प्रलेखन में उल्लेख है कि :

प्रत्येक virtualenv में पथ सूचना हार्ड-कोडित है,

उदाहरण के लिए, यदि आप दौड़ चुके हैं setvirtualenvprojectतो यह सही निर्देशिका पर स्विच करने में सक्षम नहीं होगा क्योंकि आप इसे चलाने के बाद workon ...उस स्थिति में आपको मैन्युअल रूप से ठीक करने की आवश्यकता होगी।

सामान्य तौर पर एक virtualenv आवश्यक पायथन इंटरप्रेटर फ़ाइलों के साथ-साथ उन पैकेजों की निर्देशिका से थोड़ा अधिक होता है जिनकी आपको आवश्यकता होती है।


3

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

ऐसा करने के बाद virtualenv --relocatable yourenvआपको VIRTUAL_ENVनिर्देशिका को स्थानांतरित करने के लिए हर बार अपने चर को बदलना होगा , इसलिए यदि आप इसे मैन्युअल रूप से बदलना नहीं चाहते हैं, तो इसका उपयोग करें।

#!/bin/bash \n 
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
EXISTING=$(grep 'VIRTUAL_ENV=' bin/activate)  
NEWDIR=VIRTUAL_ENV=\"$DIR\"
sed -i -e "s|$EXISTING|$NEWDIR|" bin/activate
source bin/activate

मुझे उम्मीद है यह मदद करेगा।


1

हाँ तुम कर सकते हो! (ए windows)

वर्कअराउंड आसान है, बस अपने आभासी वातावरण को कहीं भी स्थानांतरित करें फिर activate.batअंदर संपादित करें scripts\:

  1. वर्चुअल वातावरण में वांछित निर्देशिका में जाएं

  2. activate.batपर स्थित राइट-क्लिक करें और संपादित करें venv_folder\scripts

  3. VIRTUAL_ENVचर को इससे बदलें :

     set VIRTUAL_ENV=C:\old_directory\venv_name
    

    जांच

     set VIRTUAL_ENV=C:\new_directory\venv_name
    
  4. संपादित बैच फ़ाइल सहेजें, और यह thats!

नोट: मेरा समाधान काम करना चाहिए और windows usersनए आभासी वातावरण स्थापित करने से बचाना चाहिए , मुझे संदेह है कि यह अन्य ऑपरेटिंग सिस्टम में काम करेगा क्योंकि .batयह हैMS-DOS


1
बदलें old_directoryकरने के लिए old_directory- लिखने में कोई त्रुटि है?
पावती
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.