2016-09-19 12 views
-1

バッチファイルがあります。実行にかかった時間を知りたい場合は、.csv形式のファイルでログファイルの結果を出力してください。所望の出力は次のようになります:コマンドの開始時刻と終了時刻を記録し、CSVファイルに保存します

Batch,Date,StartTime,EndTime 
    AM,Sun 09/18/2016,07:00:00,07:53:42 
    PM,Sun 09/18/2016,19:00:00,19:51:54 
    AM,Mon 09/19/2016,07:01:22,07:56:54 

「バッチ」の欄には、スクリプトは、朝や夜に実行されたばかりかどうかです。 「AM」または「PM」のいずれかの結果を伴う。条件付きの「if」をどうやって行うのか分かりません。その後、私のファイルの最後に、私は置くところ

set startdate = %date% 
    set starttime = %time% 

    Don't know how to do if/then/else so in words: 
    if starttime is less than 12:00:00, then set batch="AM". Else set batch ="PM" 

echo %batch%,%startdate%,%starttime%,%time% >> C:\backup_time.csv 
+5

あなたの質問のタイトルは、あなたが質問している、または質問している問題を説明するものにしてください。タイトル全体には、追加したタグから収集できない情報は含まれていないため意味がありません。あなたのタイトルは、将来の読者のために検索結果に表示されることを意味するほど明確でなければなりません。 –

+0

申し訳ありません。これは初めてです。私はそれをやったと思った。あなたは私のタイトルとして何を提案しますか?どのようなタグ? –

+0

あなたの*タグ*は問題ありません。あなたのタイトルは単純にそれらを繰り返しましたが、そうではありませんでした。 @SomethingDarkはすでにあなたのために編集を行っているようです。 –

答えて

0

まず、次のエラーがあなたのコードにあります:

rem   ↓ ↓  harmful spaces 
set startdate = %date% 
set starttime = %time% 
rem   ↑ ↑  harmful spaces 

しかし、私はのようなものを考えていました次のコードスニペットは、期待通りに機能するはずです。

set "startdate=%date%" 
set "starttime=%time%" 
set "_aux=%starttime:~0,2%"   extract hours from time 
set "_aux=%_aux: =0%"    change possible leading space to zero if necessary 
    rem treat properly values 08 and 09 using modulo operator in next `SET /A` command 
set /A "_aux=1%_aux% %% 100" 
if %_aux% LSS 12 (set "batch=AM") else set "batch=PM" 
>>C:\backup_time.csv echo %batch%,%startdate%,%starttime%,%time% 

リソース(必要な読み取り、不完全):

+0

これは完璧です。どうもありがとうございます! –

関連する問題