फ़ाइल नाम में वर्तमान दिनांक


15

मेरे पास बैकअप स्क्रिप्ट है जो डेटाबेस को डंप करता है। मैं फ़ाइल नाम में दिनांक टाइमस्टैम्प कैसे जोड़ सकता हूं?

मैं विंडोज और सीएमडी के बारे में बात कर रहा हूं।

जवाबों:


21

कमांड प्रॉम्प्ट और बैच फ़ाइलों में, आप उपयोग कर सकते हैं %date%और %time%क्रमश: दिनांक और समय वापस जाने के लिए। दिनांक ठीक काम करता है, लेकिन समय के मान में कॉलोन शामिल हैं, जो फ़ाइल नाम में उपयोग के लिए अवैध हैं, लेकिन उन को हटाने का एक तरीका है।

कुछ का उपयोग करें:

COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt

यह एक फ़ाइल नाम जैसे उत्पादन करेगा file_172215_01062009.txt

अपडेट: नीचे दी गई टिप्पणियों में इस कमांड पर दिलचस्प ट्विस्ट हैं और साथ ही कुछ संभावित समस्याएं भी हैं जिनसे आप बच सकते हैं।


3
महान छोटी टिप। BTW, यदि आप इसे दूसरे तरीके से करते हैं, तो वह है: "file_20090601_172215", आप फ़ाइलों को एक अल्फ़ाबेटिक सूची में सही क्रम में देखेंगे।

5
आप कॉलन हटाने के लिए% समय :: =% का भी उपयोग कर सकते हैं।
user1686

2
मैं कहूंगा कि स्क्रिप्ट के परीक्षण के बाद सिस्टम लोकल से अलग होते ही डेट-स्ट्रिंग-आईएनजी टूट जाएगा? यह परीक्षण उपयोगकर्ता के लिए भी काम कर सकता है और स्क्रिप्ट रनर के रूप में अलग-अलग तारीखों के प्रदर्शन प्रारूपों के कारण टूट सकता है ...
Oskar Duveborn

4
खबरदार घंटे 0 - 9! CMD घंटे के पहले वर्ण को <SPACE> पर सेट करता है, बजाय 0. ऊपर COPY कमांड के, यदि आपको उद्धरण में गंतव्य फ़ाइल नाम संलग्न नहीं है तो समस्याएँ होने वाली हैं।
इवान एंडरसन

2
ध्यान दें कि %DATE%और %TIME%स्थानीय-जागरूक हैं! इसका मतलब है कि एक यूरोपीय मशीन पर, आपको मिलता है DD.MM.YYYY। अरे।
पकाका

14

का प्रयोग करें %DATE%और / या %TIMEवातावरण चर, वैकल्पिक रूप से अक्षर हैं जो फ़ाइल नाम में अनुमति नहीं है, का उपयोग करते हुए प्रतिस्थापन %name:from=to%( %TIME::=%सभी कोलन को दूर करेंगे)।

सिद्धांत »गूंज% तारीख%
2009-06-01

सिद्धांत »गूंज% समय%
16: 30: 41,46

सिद्धांत »गूंज% समय :: =%
163052,17

सिद्धांत »गूंज% समय :: =,%
16,30,58,68

सिद्धांत »गूंज बैकअप-% दिनांक% -% समय :: = -%। ज़िप
बैकअप-2009-06-01-16-31-18,82.zip

1
वाह, के बारे में कभी पता नहीं है: x = y चाल। यह वास्तव में अच्छा है।
यूजीन काट्ज़

1
+1 के लिए: = चाल, iv'e MS-Dos 1 के बाद से इस गेम में है और पहली बार Iv'e ने उस एक को देखा। बेहतर होगा यदि आप कई चार्ट भी बदल सकते हैं !! :-)
शावि

खैर, यह केवल Windows NT श्रृंखला में Cmd.exe में जोड़ा गया था ... और यदि आप कई बदलाव करना चाहते हैं, तो बस set tmp=%tmp:x=y%आदि की एक श्रृंखला है
user1686

% DATE% की सामग्री (दायर की गई संख्या, सामग्री और आदेश) स्थानीय विशिष्ट हैं।
सिम्बियन

4

जो भी क्षेत्रीय सेटिंग हो, उचित तिथि प्राप्त करने का एकमात्र विश्वसनीय तरीका foxidrive @ /programming/11037831/filename-timestamp-in-windows-cmd-batch-script है।

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause

1

फ़ाइल नाम में% DATE% चर का उपयोग करें।

एक% TIME% वैरिएबल भी है, लेकिन इसमें ऐसे वर्ण हैं, जिन्हें फ़ाइल नाम में अनुमति नहीं है।

यहां एक नई फ़ाइल में टेक्स्ट की एक पंक्ति लिखने का एक उदाहरण है, जहां बनाई गई फ़ाइल के नाम में एक दिनांक और समय है।

echo "testfile" >> backup-%DATE%.txt
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.