2011-02-24 15 views
12

पर रीडायरेक्ट करना मैं एक बैच फ़ाइल लिखने की कोशिश कर रहा हूं ताकि एक फोर्टन संकलित निष्पादन योग्य निष्पादित किया जा सके। आम तौर पर विंडोज़ कमांड प्रॉम्प्ट पर जाता है, 'Model.exe' टाइप करें। यह एक डॉस कमांड विंडो लाएगा जो उपयोगकर्ता को डॉस प्रॉम्प्ट पर कमांड विंडो में सीधे एक आवश्यक फ़ाइल नाम टाइप करने के लिए कहता है।एकाधिक लूप में कमांड कमांड: फ़ाइल में एक स्ट्रिंग को प्रतिबिंबित करना और फिर कमांड विंडो

मैं एक बैच फ़ाइल लिखना चाहता हूं जो मेरे लिए यह बिट करेगी, और इस चरण को फिर से चालू करे ताकि मैं इसे हाथ से करने के बजाय लगातार 10 सिमुलेशन चला सकूं। इस प्रकार का खोल ऑपरेशन लिनक्स में सीधा होगा, लेकिन मेरे पास यह उपलब्ध नहीं है।

मेरे छद्म कोड इस तरह दिखेगा:

के लिए

/%% में चलाने (1,1,10) एल करते
(सेट str = सिम %%
गूंज चलाने% str%>। input.txt
Model.exe < input.txt)

आप इस के लिए निम्न चरणों में विभाजित कर सकते हैं:

  1. एक एसएसआईएन वैरिएबल 'रन' एक मान। (उदाहरण के लिए 1)
  2. एक स्ट्रिंग ("सिम") एक नया वेरिएबल, "सिम 1"
  3. बनाने के लिए साथ जुटना इस एक पाठ फ़ाइल ("input.txt")
  4. चर पढ़ें "सिम 1 को यह गूंज "फ़ाइल से" input.txt "
  5. निष्पादन योग्य हो जाता है और इसकी बात करता है।
  6. चरण दोहराएं 1 -> 5, लेकिन एक नए चर Calle "SIM2" आदि

साथ मैं अगर मैं सेट str = सिम 1 का उपयोग काम करने के लिए ऊपर प्राप्त कर सकते हैं और उसके बाद के लिए सीधे इस गूंज " input.txt ", लेकिन मैं इसे लूप के रूप में काम करने के लिए नहीं मिल सकता। क्या मैं कुछ भूल रहा हूँ?

सादर,

बेन

+0

मुझे स्टैक ओवरफ्लो में आपका स्वागत करने की अनुमति दें और तीन चीजों को याद दिलाएं जो हम आम तौर पर यहां करते हैं: 1) जैसे ही आपको सहायता मिलती है, इसे विशेषज्ञता देने के अपने ** ** प्रश्नों का उत्तर देने का प्रयास करें ** ['एफएक्यू पढ़ें]] (http://tinyurl.com/2vycnvr) 3) जब आप अच्छे क्यू एंड ए देखते हैं, तो उन्हें 'ग्रे त्रिकोणों का उपयोग करके] [http://i.imgur.com/kygEP.png) का वोट दें, की विश्वसनीयता के रूप में प्रणाली उस प्रतिष्ठा पर आधारित है जो उपयोगकर्ताओं को अपना ज्ञान साझा करके हासिल होती है। यह भी याद रखना याद रखें कि आपकी समस्या, यदि कोई हो, तो बेहतर हल हो जाती है, ['चेकमार्क साइन दबाकर'] (http://i.imgur.com/uqJeW.png) –

उत्तर

24

ओह, चर विस्तार के cmd.exe के उपचार बदसूरत है। तो, आप, "देरी विस्तार" की जरूरत है इस प्रकार है:

setlocal enabledelayedexpansion 
for /L %%i in (1,1,10) do (
set str=Sim%%i 
echo !str! > input.txt 
Model.exe < input.txt) 
endlocal 

(इस विशेष मामले में बेशक तुम सिर्फ echo Sim%%i > input.txt कह सकते हैं, लेकिन मैं इसका कोई खास कारण तुम क्यों एक और चर के माध्यम से जाने के लिए चाहता हूँ मान।)

+0

बहुत बढ़िया !! धन्यवाद एक गुच्छा, जिसने इसे वास्तव में बहुत अच्छी तरह से हल किया। –

+1

@ बेन अगर यह काम करता है, तो स्वीकार करने पर विचार करें, और आखिरकार गैरेथ के जवाब को ऊपर उठाएं। –

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