बल्ले फ़ाइल का उपयोग कर फ़ोल्डर बनाना


15

मुझे एक बैट फ़ाइल लिखनी है जो फ़ोल्डर नाम के लिए वर्तमान दिनांक और समय का उपयोग करके एक नया फ़ोल्डर बनाता है। मैं निम्नलिखित के साथ आया था:

for /f "tokens=1-3 delims=:," %%i in ("%TIME%") do md %DATE%-%%i.%%j.%%k 

इस कोड को किसी भी खामियां है करता है? क्या ऐसा करने का एक आसान/अधिक प्राकृतिक तरीका है?

  0

वैसे, यह यहां दो निर्देशिकाएं बनाता है। उद्धरणों का उपयोग करना (एमडी "% DATE% - %% i। %% जे। %% के") बेहतर होगा। 22 feb. 092009-02-22 11:43:51

23

आप सबस्ट्रिंग और निर्मित% DATE% और% TIME% चर यह करने के लिए उपयोग कर सकते हैं:

@echo OFF 

:: Use date /t and time /t from the command line to get the format of your date and 
:: time; change the substring below as needed. 

:: This will create a timestamp like yyyy-mm-dd-hh-mm-ss. 
set TIMESTAMP=%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%-%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2% 

@echo TIMESTAMP=%TIMESTAMP% 

:: Create a new directory 
md "%1\%TIMESTAMP%" 
  0

वही है जो मैं खोज रहा था, यह दृष्टिकोण मेरे लिए अधिक प्राकृतिक लगता है 23 feb. 092009-02-23 09:55:18

+1

बहुत उपयोगी! हालांकि, यह ध्यान दिया जाना चाहिए कि उपरोक्त कोड का उपयोग एक पैरामीटर मानता है: नए फ़ोल्डर का गंतव्य स्थान। यदि आप इसका उपयोग करते हैं, तो आपके द्वारा लॉन्च किए गए किसी भी ड्राइव की रूट में आपके पास टाइमस्टैम्प फ़ोल्डर होगा। 28 mar. 122012-03-28 18:51:11


5

मैं इस बल्ले

for /F "tokens=1-4 delims=. " %%i in ('date /t') do (
set Day=%%i 
set Month=%%j 
set Year=%%k 
) 

for /F "tokens=1-4 delims=: " %%i in ('time /t') do (
set Hour=%%i 
set Minute=%%j 
set Second=%%k 
) 


md %1\%Year%-%Month%-%Day% 

आशा है कि यह मदद करता है का उपयोग करें।

  0

ध्यान दें कि कमांड एक्सटेंशन अक्षम होने पर समय/टी काम नहीं करेगा, लेकिन मुझे लगता है कि यह वास्तव में आपको परेशान नहीं करता है। (देखें http://www.pc1news.com/disabling-command-processor-extensions-824.html संदर्भ के लिए) 22 feb. 092009-02-22 11:36:19

  0

मुझे बल्लेबाजी के बारे में बहुत कुछ पता नहीं है, मैं बस बल्लेबाज चाहता था जो वर्तमान तिथि के साथ एक फ़ोल्डर बनाता है, लेकिन जानकारी के लिए धन्यवाद। 22 feb. 092009-02-22 12:10:31

  0

लूप के लिए दूसरा मेरे कंप्यूटर पर सेकंड प्रदर्शित नहीं करता है, क्योंकि समय/टी आउटपुट मेरे लिए सिर्फ 8:12 है (कोई सेकंड नहीं)। 16 jan. 122012-01-16 07:11:56


0

क्या आपने इसे आजमाया है? आपकी कमांड लाइन मेरी तरफ एक त्रुटि फेंकता है।

  0

यदि आप इसे बैच फ़ाइल की बजाय कमांड लाइन से सीधे चलाने के लिए चाहते हैं, तो %% के साथ% i को प्रतिस्थापित करें, फिर यह काम करेगा। 22 feb. 092009-02-22 11:42:46

  0

मैंने इसे बैट फ़ाइल के अंदर करने की कोशिश की। यह काम तो ठीक करता है। जब आप इसे कमांड लाइन से चलाते हैं तो आपको %% को% से बदलना चाहिए। /f "टोकन = 1-3 delims = :,"% i में ("% TIME%") md% DATE% -% i।% J।% K 22 feb. 092009-02-22 11:44:11

  0

सही है। धन्यवाद schnaader और यारिक। 22 feb. 092009-02-22 11:59:06


1

मैं ऊपर काम करने के लिए के कई नहीं मिल सका, मूल पोस्टर आदेश इस्तेमाल किया हालांकि सफलतापूर्वक।

/च के लिए
"टोकन = 1-3 delims =:: /"।। %% मैं में ("% DATE%") कर सेट डेटस्टैम्प = %% मैं %% j%

यहाँ मेरी संस्करण है % कश्मीर
निर्देशिका @echo इस नाम के साथ बनाया जाएगा:।।
@echo बैकअप% डेटस्टैम्प%
md बैकअप% डेटस्टैम्प%
निर्देशिका @echo बनाया है, अब फ़ाइल प्रतिलिपि के साथ आगे बढ़ने ...
@echo कृपया सुनिश्चित करें कि पीसी में ई-मेल या कोई दस्तावेज़ खुला नहीं है। ।
ठहराव
सीडी बैकअप% डेटस्टैम्प%
md "साझा दस्तावेज़"
xcopy "c: \ दस्तावेज़ और सेटिंग्स \ सभी उपयोगकर्ताओं \ दस्तावेज \ दस्तावेज" "साझा दस्तावेज़"/ई/सी/मैं/एच/क्यू
दस्तावेज़ों में @echo पूर्ण।

आदि :)


0

आप इस कोड के साथ new_folder_maker.bat के रूप में सहेजा दिनांक और समय का उपयोग कर

:start 
@echo off 
md new_folder_%date%_%time% 
exit 
+2

क्या आपने अभी अपना कोड नहीं लिया है? जाहिर है, यह काम नहीं कर सकता है, क्योंकि '% समय%' में कोलन शामिल हैं और कुछ मामूली देशों में तारीख में स्लेश होते हैं, दोनों पथ नामों में मान्य नहीं हैं 21 mar. 122012-03-21 12:42:36

  0

वास्तव में यह समय और दिनांक सेटिंग्स 26 oct. 122012-10-26 12:02:23


0

यहाँ मेरी समाधान है एक नया नया फ़ोल्डर निर्माता बनाने के लिए सिर्फ नहीं की कोशिश की है (बंद संशोधित lopkiju के) । यह एक डेटास्टैम्प का उपयोग कर एक फ़ोल्डर बनाता है। यदि उस नाम का एक फ़ोल्डर पहले से मौजूद है, तो इसे अद्वितीय बनाने के लिए इसे पूर्णांक संलग्न करें। इसे एक .bat फ़ाइल में रखें और पैरेंट फ़ोल्डर के पथ में पास करें।
विंडोज 7 होम प्रीमियम x64 में परीक्षण किया गया।

REM Create a folder using the current date. If such a folder already exists, append a number to make it unique. 
@ECHO OFF 
for /F "tokens=2-5 delims=/ " %%i in ('date /t') do (
set Day=%%j 
set Month=%%i 
set Year=%%k 
) 

set Path=%~1\%Year%-%Month%-%Day% 
set /a inx=2 

:LOOP 
IF NOT EXIST "%Path%" GOTO CREATE 
set Path=%~1\%Year%-%Month%-%Day% (%inx%) 
set /a inx+=1 
if %inx% gtr 9 goto :END REM Eh, giving up. 
goto LOOP 
:END 

:CREATE 
md "%Path%" 
:END 
  0

पर निर्भर करता है कि आप एक संसाधन प्रदान कर सकते हैं कृपया कदम से इस कदम बताते हैं? मैंने कमांड प्रॉम्प्ट में मदद का उपयोग किया और 05 nov. 132013-11-05 13:42:36

  0

का पालन करना थोड़ा मुश्किल है, टाइमस्टैम्प में सेकंड शामिल हैं। तो यह पहले से ही bijective है 27 jan. 142014-01-27 20:59:39


0

आप date.exe के प्रारूप विनिर्देशक का उपयोग कर GNU sh-utils का लाभ उठा सकते:

for /f "delims=" %%a in ('date.exe +%%Y-%%m-%%d.%%H-%%M') do @set dd=%%a 
md %dd% 

यह समाधान स्थानीयकृत संस्करण Windows के के साथ उन लोगों के लिए विशेष रूप से महत्वपूर्ण है।

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

प्रारूप विनिर्देशकों की पूरी सूची के लिए date --help का उपयोग करें।


0

इस कारण मुझे

dkdir foldername 

cd foldername 

dkdir %date% %time% 

cls 

1

के लिए बहुत अच्छी तरह से काम करता है क्यों एक साधारण% समय% काम नहीं करता है, क्योंकि इसके द्वारा अलग: जो बैच पटकथा में अनुमति नहीं है। लेकिन इसे ठीक काम करना चाहिए:

यह मेरे लिए बहुत अच्छा काम करता है।

Rem Get Day,Mth & Year from %Date% 
set Day=%Date:~0,2% 
set Mth=%Date:~3,2% 
set Yr=%Date:~6,4% 
REM Get Hour and Min from %Time% 
set Hour=%Time:~0,2% 
if "%hour:~0,1%" == " " set hour=0%hour:~1,1% 
set Min=%Time:~3,2% 

mkdir %date%-%hour%.%min%