मेरे पास एक बैच स्क्रिप्ट है जो फ़ाइल आउटपुट करती है, और मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि प्रत्येक बार स्क्रिप्ट निष्पादित हो जाने पर, कोई मौजूदा फाइल ओवरराइट नहीं की जाती है, इसलिए मैं टाइमस्टैम्प लगाने की कोशिश कर रहा हूं इस पर।विंडोज सीएमडी बैच स्क्रिप्ट में फ़ाइल नाम टाइमस्टैम्प
वर्तमान में मैं इस है:
set stamp=%DATE:/=-%_%TIME::=-%
लेकिन अगर समय 1-9 AM है, यह की तरह कुछ देता है:
13-06-2012_ instead of a full 13-06-2012_12-39-37.28
मैं इसे कैसे ठीक कर सकते हैं?
मैं Windows 7, और एक कमांड लाइन विंडो में echo %date% %time%
के उत्पादन में उपयोग कर रहा हूँ ('लघु तारीख' के लिए मेरी घड़ी के प्रारूप 3 अक्षर महीने प्रदर्शित करने के लिए सेट कर दिया जाता) है:
03-Sep-12 9:06:21.54
संपादित करें: मैं अब कुछ समय के लिए निम्न टाइमस्टैम्प का उपयोग कर रहा हूं, अच्छी तरह से काम करता है।
set timestamp=%DATE:/=-%_%TIME::=-%
set timestamp=%timestamp: =%
ऐसा लगता है कि एक टाइमस्टैम्प उत्पादित: 18-03-2013_13-37-43.26
, %TIME%
और %DATE%
में /
और :
की जगह है, तो सफेद स्थान अलग करना द्वारा। व्हाइटस्पेस वास्तव में मेरे मूल प्रश्न में समस्या थी।
खेद है कि एक अमान्य तिथि भी वापस आती है, मुझे '-06-2012_01' – bryc
मिला है मैंने एक संपादन किया है। इसे 2012-06-14_12-47-पीएम –
होने के लिए ठीक करना चाहिए क्यों न सिर्फ यह एक पंक्ति पर करें? 'for/f" टोकन = 2-8 delims =।:/"%% a in ("% date%% time% ") दिनांक दिनांक = %% सी - %% सेट करें - %% बी _ %% डी-% % e-%% f। %% g' यह उदाहरण 12 घंटे + AM/PM के बजाय 24 घंटे की घड़ी का उपयोग करता है, और इसमें मिलीसेकंड शामिल हैं। यदि आप मिलिसेकंड नहीं चाहते हैं, तो बस '%% जी' का उपयोग न करें। –