केवल सांत्वना के लिए लॉग इन प्रगति के साथ रोबोकॉपी कैसे करें?


8

मैं RoboCopy चलाना चाहता हूं जो कंसोल को% प्रगति के साथ अपडेट करेगा लेकिन% प्रगति के साथ लॉग फ़ाइल को अव्यवस्थित नहीं करेगा।

निम्न RoboCopy कमांड वांछित कॉपी करेगा और लॉग फाइल के लिए लॉगिंग जानकारी संलग्न करेगा।

RoboCopy <source> <dest> /log+:<log file> /tee

समस्या यह है कि लॉग फ़ाइल को% प्रगति अपडेट के साथ बंद कर दिया गया है। इसलिए मुझे यह करने के लिए कमांड बदलने की जरूरत है:

RoboCopy <source> <dest> /log+:<log file> /tee /np

अब समस्या यह है कि मुझे स्क्रीन पर कोई भी% प्रगति अपडेट नहीं मिल रहा है।

मैंने कुछ समय पहले http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx पढ़ा है और मुझे एक स्विच (तों) की आवश्यकता नहीं है। क्या मुझे कुछ याद आ रहा है या मैं वह करना चाहता हूं जो संभव नहीं है?


क्या आपको केवल बिलिन टूल्स का उपयोग करना है?
नमस्ते --१

जवाबों:


2

जैसा कि किसी ने भी इतने लंबे समय तक इसका जवाब नहीं दिया, मैंने सोचा कि मैं कुछ चीजों का सुझाव दूंगा।

यदि आप बैच स्क्रिप्ट का उपयोग कर रहे हैं, तो लॉग फाइल से अवांछित प्रगति की जानकारी निकालने के लिए sed का उपयोग करना बहुत मुश्किल नहीं होना चाहिए । मैं इसके साथ कुछ समय बिताने के बिना इसका उपयोग करने के लिए आपको इसका समाधान देने के लिए पर्याप्त अनुभवी नहीं हूँ।

UnxUtilssed में एक एकल .exe फ़ाइल संस्करण है (अद्यतन ज़िप में थोड़ा और अद्यतित संस्करण के साथ)।

एक अन्य विकल्प के बजाय XXCOPY का उपयोग करना होगा Robocopy। इसमें स्विच (230 से अधिक) की वास्तव में हास्यास्पद संख्या है , जो आपको जो कुछ भी करने की अनुमति देता है वह आपको करने की अनुमति देता है। आपको एक पूरी शाम चुननी होगी जिसे आप उपयोग करना चाहते हैं। इसमें GUI प्रगति संवाद बॉक्स भी है, यदि आप इसका उपयोग करना पसंद करेंगे।

व्यक्तिगत उपयोग के लिए एक मुफ़्त संस्करण है, जिसका उपयोग स्वचालित स्क्रिप्टिंग के लिए नहीं किया जा सकता है, क्योंकि आपको भुगतान किए गए संस्करण के विपरीत, अंतःक्रियात्मक रूप से संकेतों का पालन करने की आवश्यकता है।

XXCOPY

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

RichCopy


1

पुन: robocopy और लॉग प्रगति 'शोर'

समाधान: बस / TEE का उपयोग करें और इसे 'शोर' में प्रवेश करने दें, अन्यथा आपको कोई प्रगति दिखाई नहीं देगी। फिर sed का उपयोग करें, जैसा कि पहले लॉगफ़ाइल को निम्न प्रकार से साफ करने का सुझाव दिया गया था:

sed -i.bak "s / \ x0d। * \ x0d। * $ //" logfile.txt

यदि आप एक अनफिक्स बैकअप नहीं चाहते हैं तो .bak को हटा दें। सीड यहां खिड़कियों के लिए उपलब्ध है, और ठीक काम करता है, कम से कम सिंगल * लाइन उपयोग के लिए।

http://gnuwin32.sourceforge.net/packages/sed.htm

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


+1 वहाँ पाइप के लिए एक रास्ता नहीं है stdoutके माध्यम से sedसीधे?
पैराडायराइड

1
बेशक आप सीड के माध्यम से पाइप कर सकते हैं, लेकिन यह कंसोल डिस्प्ले से प्रगति की जानकारी और साथ ही लॉगफ़ाइल को हटा देगा ...
मैक

बेशक, लेकिन मुझे लगा कि शायद teeरोबोकॉपी के /TEEस्विच के बजाय कमांड का उपयोग किया जा सकता है , लेकिन मुझे सिर्फ यह एहसास है कि यह TCC/LEएक मानक CMDकमांड का हिस्सा है और नहीं । यह PowerShellहालांकि में उपलब्ध है ।
पैराडायरायड

वास्तव में .. यह अभी भी लॉगफाइल को प्रगति गड़बड़ लिखता है! तो जो चाहता है, उसके ठीक विपरीत है। मैंने सिर्फ इसके साथ परीक्षण किया: रोबोकॉपी। tst /log:n:\tst.log / टी | sed "s / \ x0d। * \ x0d। * $ //"
Mac

); टी gnuwin32 से भी उपलब्ध है .. लेकिन एक ही समस्या है होगा gnuwin32.sourceforge.net/packages/coreutils.htm
मैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.