2017-01-11 2 views
0

그래서이 코드 줄을 좁히지 않고 충돌없이 충돌하는 것은 무엇입니까? (이 % 드라이브 %는 이미이 시점 이전에 설정 한 사용자 설정 varible입니다) (그리고 월 일 증가한 것은 여기에서 설정) : 코드는 조건을 포함하고 명령을 결여 존재왜 배치가 무작위로 충돌합니까?

set yy=%date:~10,4% 
set mm=%date:~4,2% 
set dd=%date:~7,2% 

if exist "%DRIVE%:\MC\Logs\Log-%mm%-%dd%-%yy%.txt" 
) else (
echo [Mobile Mc Log Data] > %DRIVE%:\MC\Logs\Log-%mm%-%dd%-%yy%.txt 
) 
echo [%TIME%] [%DATE%] - Log data that i will write later, >> "%DRIVE%:\MC\Logs\Log-%mm%-%dd%-%yy%.txt" 
+0

"충돌"은 무엇을 의미합니까? 더 정확하게 말하십시오! 정확한 날짜 형식은 무엇입니까? _space_ +'1'과 같은 자리 숫자에 공백이 생길 수 있으며, 아니면 '01'과 같은 0이 오나요? 'if exist ... '뒤에 빠진 것이 있습니다.'('와 실행할 명령이 있어야합니다 .'>''사이에'>'다음에 리디렉션 경로를 넣으십시오. '... – aschipfl

답변

0

귀하의 경우.

참조 우는 소리, 올바른 구문 :

IF EXIST filename (command) ELSE (command)

+0

오, 고마워, 그리고 나는 오프닝을 잊어 버렸다 (* facepalm * – HungryBoy02

+0

당신은 환영합니다 :) – YanivK

0
if exist "%DRIVE%:\MC\Logs\Log-%mm%-%dd%-%yy%.txt" (
    rem mismatched `IF` syntax 
) else (
    rem use double quotes  ↓          ↓ 
    echo [Mobile Mc Log Data] > "%DRIVE%:\MC\Logs\Log-%mm%-%dd%-%yy%.txt" 
) 

또는

if NOT exist "%DRIVE%:\MC\Logs\Log-%mm%-%dd%-%yy%.txt" (
    rem use double quotes  ↓          ↓ 
    echo [Mobile Mc Log Data] > "%DRIVE%:\MC\Logs\Log-%mm%-%dd%-%yy%.txt" 
) 

는 또한, %date%not allowed in file names을 문자를 포함 할 수 있습니다.

@ECHO OFF 
SETLOCAL enableextensions 

for /F %%g in (' 
    wmic OS get LocalDateTime /value^|findstr "=" 
    ') do for /F %%G in ("%%g") do set "_%%G" 

set "_LocalDateTime=%_LocalDateTime:~0,8%" 
set yy=%_LocalDateTime:~0,4% 
set mm=%_LocalDateTime:~4,2% 
set dd=%_LocalDateTime:~6,2% 

자원 (필수 읽기) :

관련 문제