cmd.exe
अपने निर्धारित कार्य के आउटपुट को लॉग करने के लिए टाइमस्टैम्ड फ़ाइल नाम बनाने के लिए कमांड प्रोसेसर का उपयोग करें
यहां अन्य लोगों के उत्तरों का निर्माण करने के लिए, यह हो सकता है कि आप एक आउटपुट फ़ाइल बनाना चाहते हैं जिसमें फ़ाइल के नाम पर दिनांक और / या समय अंतर्निहित हो। आपके cmd.exe
लिए ऐसा करने के लिए आप कमांड प्रोसेसर का उपयोग कर सकते हैं ।
ध्यान दें: यह तकनीक आंतरिक विंडोज़ पर्यावरण चर के स्ट्रिंग आउटपुट को लेती है और उन्हें चरित्र स्थिति के आधार पर स्लाइस करती है। इस वजह से, नीचे दिए गए उदाहरणों में दिए गए सटीक मान आपके द्वारा उपयोग किए जाने वाले विंडोज के क्षेत्र के लिए सही नहीं हो सकते हैं। साथ ही, कुछ क्षेत्रीय सेटिंग्स के साथ, दिनांक या समय के कुछ घटक निर्मित फ़ाइल नाम में एक स्थान का परिचय दे सकते हैं जब उनका मान 10 से कम हो। इस समस्या को कम करने के लिए, अपने फ़ाइल नाम को उद्धरण के साथ घेरें ताकि फ़ाइल में कोई भी अनपेक्षित स्थान न हो आपके द्वारा बनाई जा रही कमांड-लाइन का नाम नहीं टूटेगा। प्रयोग करें और अपनी स्थिति के लिए सबसे अच्छा काम करें।
PowerShell
से अधिक शक्तिशाली है कि अवगत रहें cmd.exe
। एक तरीका यह अधिक शक्तिशाली है कि यह विभिन्न विंडोज क्षेत्रों से निपट सकता है। लेकिन यह जवाब इस मुद्दे को हल करने के बारे में है cmd.exe
, नहीं PowerShell
, इसलिए हम जारी रखते हैं।
का उपयोग करते हुए cmd.exe
आप आंतरिक वातावरण चर को स्लाइस करके दिनांक और समय के विभिन्न घटकों तक पहुँच सकते हैं %date%
और %time%
, इस प्रकार (फिर से, सटीक स्लाइसिंग मान विंडोज में कॉन्फ़िगर किए गए क्षेत्र पर निर्भर हैं):
- वर्ष (4 अंक):
%date:~10,4%
- महीना (2 अंक):
%date:~4,2%
- दिन (2 अंक):
%date:~7,2%
- घंटा (2 अंक):
%time:~0,2%
- मिनट (2 अंक):
%time:~3,2%
- दूसरा (2 अंक):
%time:~6,2%
मान लीजिए कि आप अपनी लॉग फ़ाइल को इस तिथि / समय प्रारूप का उपयोग करके नाम देना चाहते हैं: " Log_[yyyyMMdd]_[hhmmss].txt
"। आप निम्नलिखित का उपयोग करेंगे:
Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
इसका परीक्षण करने के लिए, निम्न कमांड लाइन चलाएं:
cmd.exe /c echo "Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt"
यह सब एक साथ रखें, रीडायरेक्ट करने के लिए दोनों stdout
और stderr
वर्तमान दिनांक और समय के साथ नाम के एक लॉग फ़ाइल के लिए अपनी स्क्रिप्ट से, उपयोग अपने आदेश पंक्ति के रूप में निम्न का उपयोग कर सकता है:
cmd /c YourProgram.cmd > "Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt" 2>&1
फ़ाइल नाम के आस-पास के उद्धरणों के उपयोग को ध्यान में रखें कि कोई दिनांक या समय घटक किसी स्थान वर्ण को प्रस्तुत कर सकता है।
मेरे मामले में, यदि वर्तमान तिथि / समय 10/05/2017 9:05:34 AM था, तो उपरोक्त कमांड-लाइन निम्नलिखित उत्पादन करेगी:
cmd /c YourProgram.cmd > "Log_20171005_ 90534.txt" 2>&1