डबल प्रतिशत का मतलब बिल्कुल कुछ भी नहीं है।
echo %firstname%%lastname%
\_________/\________/
Two separate expansions.
टिल्ड आप सबस्ट्रिंग देता है: यह बस जैसे दो चर विस्तार पक्ष-साथ होने का एक परिणाम है। आपके मामले में, %date:~10,4%
आपको date
पर्यावरण परिवर्तनीय ऑफसेट दस में चार वर्ण देता है (इस मामले में वर्ष Thu 29/12/2011
है, ऑफ़सेट शून्य से शुरू होने के साथ)।
आप Windows कमांड pronpt पर set /?
दर्ज करते हैं, यह आप के लिए सभी विकल्प, स्ट्रिंग के अंत से निकालने के लिए नकारात्मक ऑफसेट का उपयोग करने का गंधा चाल सहित व्याख्या करेगा।
हालांकि, आपको यह ध्यान रखना चाहिए कि date
पर्यावरण परिवर्तनीय प्रारूप लोकेल पर निर्भर करता है, इसलिए यह सरल स्ट्रिंग निष्कर्षण विंडोज के सभी अंतरराष्ट्रीय संस्करणों में काम करने की संभावना नहीं है (यह मुझे कुछ साल पहले थोड़ा सा)।
ए बेहतर समाधान WMI ऐसे उपयोग करने पर Rob van der Woude's excellent scripting pages के रूप में तिथि घटकों, यहां पूर्णता कॉपी किया लाने के लिए यह है:
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Dayˆ,Hourˆ,Minuteˆ,Monthˆ,Secondˆ,Year /Format:table') DO (
IF NOT "%%~F"=="" (
SET /A SortDate = 10000 * %%F + 100 * %%D + %%A
SET /A SortTime = 10000 * %%B + 100 * %%C + %%E
SET SortTime=0000000!SortTime!
SET SortTime=!SortTime:~-6!
)
)
आप इस पोस्ट को देख सकते हैं, महान उदाहरण हैं: http://stackoverflow.com/questions/1192476/windows-batch-script-format-date-and-time –
google "विंडोज बैच फ़ाइल वाक्यविन्यास" –
@ फ़्रेड्रिक , जब आप "विंडोज बैच फ़ाइल सिंटैक्स" Google पर जाते हैं तो उस सूची के ** शीर्ष ** पर होना क्या है :-) – paxdiablo