मैं src/
से dst/
ग्रूवी निष्पादित "सीपी *" शेल कमांड
groovy:000> "cp src/*.txt dst/".execute().text ===> groovy:000>
आप कमांड देख सकते हैं करने के लिए पाठ फ़ाइलें और केवल पाठ फ़ाइलों की प्रतिलिपि बनाना चाहते कार्यान्वित w/बाहर त्रुटि लेकिन फाइल src/test.txt
कॉपी हो नहीं करता है dst/
को
यह भी विफल रहता है:
groovy:000> "cp src/* dst/".execute().text ===> groovy:000>हालांकि
...
"cp src/this.txt dst/".execute().text
भी काम करता है,
"cp -R src/ dst".execute().text
काम करता है
क्यों खुराक वाइल्ड कार्ड का कारण करने के लिए अपने आदेश चुपचाप असफल रहे हैं?
मुझे लगता है कि आप को आसान बनाने में कर सकता है कि साथ: आदेश = .... command.execute() सरणियों के रूप में भी – TimM
निष्पादित कारण समझते हैं कि '" श -c 'सीपी src/* txt डीएसटी /। '' '' काम नहीं करता है क्योंकि ग्रोवी कई तर्कों के रूप में व्हाइटस्पेस के साथ एक उद्धृत स्ट्रिंग तर्क की व्याख्या करेगा। तो groovy वास्तव में निम्न तर्कों के साथ sh निष्पादित कर रहा है: arg1 = -c, arg2 = 'cp, arg3 = src/*। Txt, arg4 = dst /' इस तरह के कमांड के परिणामस्वरूप "अन्तर्निहित उद्धृत स्ट्रिंग" त्रुटि होगी। आपके पास सही समाधान है, जो एक सरणी का उपयोग करना है। इसके अलावा, @ टीआईएमएम सही है, आप उपरोक्त को '["sh", "-c", "cp src/*। Txt dst /"] को सरल बना सकते हैं। निष्पादित करें() ' – BennyFlint
यदि आप गतिशील रूप से अपने आदेश बना रहे हैं sh -c और सरणी के साथ समाधान सबसे अच्छा समाधान है। बस करें: डीफ़ कमांड = (यहां कमांड उत्पन्न करें) def proc = ["sh", "-c", कमांड] .execute() – henrik