मैं निम्नलिखित विंडोज़ बैच फ़ाइल चलाने की कोशिश कर रहा हूँ:

@echo off

CALL workon my_env
CD C:\scripts

SET DataPath = C:\user\data
SET SavePath = C:\results

FOR %DataQuantity IN ( 100 75 60 50 40 33 25 10 ) DO (
    FOR %Subject IN ( 1 2 4 5 6 7 8 9 ) DO (
        python classifier.py DataQuantity Subject DataPath SavePath 
        python detector.py DataQuantity Subject DataPath SavePath
        python compiler.py DataQuantity Subject DataPath SavePath
    )
)

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

लेकिन मुझे निम्न त्रुटि मिल रही है:

"इस समय डेटाक्वांटिटी अप्रत्याशित थी"

0
Nitin Singh 30 नवम्बर 2020, 12:55

2 जवाब

सबसे बढ़िया उत्तर
@echo off

CALL workon my_env
CD C:\scripts

SET DataPath=C:\user\data
SET SavePath=C:\results

FOR %%q IN ( 100 75 60 50 40 33 25 10 ) DO (
    FOR %%s IN ( 1 2 4 5 6 7 8 9 ) DO (
        python classifier.py %%q %%s %DataPath% %SavePath% 
        python detector.py %%q %%s %DataPath% %SavePath% 
        python compiler.py %%q %%s %DataPath% %SavePath% 
    )
)

निम्नलिखित तय किए गए थे:

  1. '=' के निकट कोई स्थान नहीं होना चाहिए
SET DataPath=C:\user\data
  1. लूप वेरिएबल में '%%' उपसर्ग के रूप में होना चाहिए जब बैच फ़ाइल में उपयोग किया जाता है, और केवल एक अक्षर होना चाहिए।
%%q
  1. वेरिएबल को '%' के अंदर इनकैप्सुलेट किया जाना चाहिए।
%DataPath%
2
Nitin Singh 30 नवम्बर 2020, 13:47

आप प्रतिशत चार खो रहे हैं:

FOR %%B IN ( 100 75 60 50 40 33 25 10 ) DO (
    FOR %%S IN ( 1 2 4 5 6 7 8 9 ) DO (
        python classifier.py %%B %%S %DataPath% %SavePath%
        python detector.py %%B %%S %DataPath% %SavePath%
        python compiler.py %%B %%S %DataPath% %SavePath%
    )
)

उपयोग के लिए %% और सेट किए गए चर का उपयोग करने के लिए %VAR%

0
André Ginklings 20 पद 2020, 00:22