2017-01-11 11 views
0

私はこれらのコード行に絞り込んだので、クラッシュしないで、何が間違っていますか? (%のDRIVE%がすでにこの時点前に設定ユーザ設定varibleです)(そしてミリメートルddはyyのものがここで設定されている):あなたの存在する場合バッチがランダムにクラッシュする理由は何ですか?

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'のように先行するゼロがあるのでしょうか? '存在していれば'欠落しているものがありますが、実行するには '('といくつかのコマンドが必要です。 '>'の後ろに '>'の後ろに '' " '... – 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% 

リソース(必須読み取り):

関連する問題