박쥐 파일을 사용하여 폴더 만들기


15

폴더 이름에 현재 날짜와 시간을 사용하여 새 폴더를 만드는 박쥐 파일을 작성해야합니다. 나는 다음과 같은 내놓았다 :

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

이 코드가 어떤 결함을 가지고 있습니까? 더 쉽고 자연스러운 방법이 있습니까?

  0

그런데 여기에 두 개의 디렉토리가 생성됩니다. 따옴표 (md "% DATE % - %% i. %% j. %% k")를 사용하는 것이 좋습니다. 22 feb. 092009-02-22 11:43:51

23

:

@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

매우 도움이됩니다! 그러나 위 코드의 사용법은 단일 매개 변수, 즉 새 폴더의 대상 위치를 가정한다는 점에 유의해야합니다. 이 파일을 그대로 사용하면 시작한 드라이브의 루트에 timestamped 폴더가 생깁니다. 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

명령 확장 기능을 사용하지 않으면 time/t가 작동하지 않는다는 것을 알아 두십시오. (참고로 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

두 번째 for 루프는 내 컴퓨터에서 초를 표시하지 않습니다. 왜냐하면 시간/t 출력은 8시 12 분 (초 단위)이기 때문입니다. 16 jan. 122012-01-16 07:11:56


0

시도해 보셨습니까? 명령 줄에 내 문제가 발생합니다.

당신은 문자열과 내장이 할 % 날짜 % 및 % TIME %의 변수를 사용 할 수 있습니다
  0

배치 파일 대신 명령 줄에서 직접 실행하려면 %% i를 % i로 바꾸면 작동합니다. 22 feb. 092009-02-22 11:42:46

  0

박쥐 파일 안에 넣어 보았습니다. 잘 작동하는 것 같습니다. 명령 행에서 실행할 때 %%를 %로 바꿔야합니다. /f "tokens = 1-3 delims = :,"% i in ("% TIME %")은 %% DATE % - % i. % j. % k 22 feb. 092009-02-22 11:44:11

  0

입니다. 덕분에 schnaader와 yarik. 22 feb. 092009-02-22 11:59:06


1

내가 일을 위의 많은 것을 얻을 수를 원래 포스터 명령을 사용을 성공적으로./F에 대한

"토큰 = 1-3 delims = : /".. %% 전에서 ("%의 날짜 %") 이렇게 설정하여 날짜 = %% 내가 %% J % 여기

내 버전입니다 % K 디렉토리 @echo
이 이름으로 이루어집니다 :..
@echo 백업 %의 날짜 기록 %
MD 백업 %의 날짜 스탬프 %의 디렉토리 @echo
지금 파일 복사를 진행, 만든 ...
@echo PC에 전자 메일이나 문서가 열려 있지 않은지 확인하십시오. .
일시 정지
CD 백업 %의 날짜 기록 %
MD "공유 문서"
xcopy는 "C : \ 문서 및 설정 \ 모든 사용자 \ 문서 \ 문서" "공유 문서"/E/C/I/H/Q
@echo in Documents Complete.

는 등 :


0

당신은 (lopkiju 년대를 수정)

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

_ 자신의 코드를 시도하지 않았습니까? '% time %'에 콜론이 포함되어 있고 분명히 날짜에 슬래시가 포함되어 있기 때문에 분명히 작동하지 않습니다. 21 mar. 122012-03-21 12:42:36

  0

실제로 시간과 날짜 설정에 따라 달라집니다. 26 oct. 122012-10-26 12:02:23


0

가 여기 내 해결책이 코드 new_folder_maker.bat로 저장된 날짜와 시간을 사용하여 새 새 폴더 메이커를 만들기 위해 시도하지 않은 . 그것은 datestamp를 사용하여 폴더를 만듭니다. 해당 이름의 폴더가 이미 존재하면 고유하게 만들기 위해 정수를 추가하십시오. 이것을 .bat 파일에 넣고 상위 폴더의 경로를 전달하십시오.
Windows 7 Home Premium 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

타임 스탬프에 초가 포함되어 있습니다. 그래서 그것은 이미 전체적인 것입니다. 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%