バッチでの現在日時文字列取得後のファイル書き込みに
◇-?バッチでの現在日時文字列取得後のファイル書き込みに-ほとほと-04/16-11:59(300)-No.475225 ┗?!Re:バッチでの現在日時文字列取...-pandora-04/16-16:23(295)-No.475241 ┗?!!Re:バッチでの現在日時文字列取...-pandora-04/16-16:41(295)-No.475242 ┗?!!!Re:バッチでの現在日時文字列...-ほとほと-04/16-17:44(294)-No.475244 ┗?!!!!Re:バッチでの現在日時文字列...-pandora-04/16-18:29(293)-No.475248 ┗?!!!!【ありがとう】Re:バッチでの...-ほとほと-04/16-19:19(292)-No.475251
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
475225 | バッチでの現在日時文字列取得後のファイル書き込みに | ほとほと | 2009/04/16-11:59 |
メーカー名:富士通 OS名:WindowsXp Professional パソコン名:FMV-S8360 トラブル現象:ソフトの使い方がわからない ソフト関連: バッチファイル -- 現在バッチプログラムを組んでいるのですが、 実行プログラムを結果をERRORLEVELで判断し、メッセージを ログファイルに書き込もうとしております。 その際に日付を、yyyy/mm/dd hh:mm:ss 形式で出力したいのですが どのようにしたらよいでしょうか? また、for でパラメータ(%%Tで値)を変えながら処理するのに当たって、 秒のレベルまで正しくに結果を出力させたいのですが、可能でしょうか? 以下は、苦戦中のバッチファイルです。 ご教授よろしくお願いします。 ========== << ここから >> ========== @REM 日付時刻取得 FOR /F "delims=\" %%i IN ('date /t') DO SET DATE12=%%i FOR /F "delims=\" %%i IN ('time /t') DO SET TIME12=%%i @REM CSVファイルをD5形式に変換する for %%T in (1,2,3,4,5,6) do ( test.exe %%T >>logfile.txt if ERRORLEVEL 1 ( echo %DATE12% %TIME12% エラーです。>>logfile.txt goto END ) else ( echo %DATE12% %TIME12% 正常終了>>logfile.txt ) ) :END @REM 終了 |
▲このページのトップに戻る
475241 | Re:バッチでの現在日時文字列取得後のファイル書き込みに | pandora | 2009/04/16-16:23 |
記事番号475225へのコメント ほとほとさんは No.475225「バッチでの現在日時文字列取得後のファイル書き込みに」で書きました。 こんな感じではいかが? ::---ここから--- @echo off CALL :GETDATETIME ECHO yyyy/mm/dd hh:mm:ss = %DATETIME% pause GOTO :EOF EXIT rem ------------------------- rem 日時の取得subroutine rem outoput: DATETIME rem ------------------------- :GETDATETIME SET TEMPDATE=%DATE:/=% SET TEMPTIME=%TIME: =0% SET YYYY=%TEMPDATE:~0,4% SET MM=%TEMPDATE:~4,2% SET DD=%TEMPDATE:~6,2% SET HH=%TEMPTIME:~0,2% SET MI=%TEMPTIME:~3,2% SET SE=%TEMPTIME:~6,2% SET DATETIME=%YYYY%/%MM%/%DD% %HH%:%MI%:%SE% SET TEMPTIME= SET TEMPDATE= GOTO :EOF ::---ここまで--- |
▲このページのトップに戻る
475242 | Re:バッチでの現在日時文字列取得後のファイル書き込みに | pandora | 2009/04/16-16:41 |
記事番号475241へのコメント 日時データをバラさなくて良いなら、もっと簡単な方法 ::---ここから--- @echo off :loop ECHO yyyy/mm/dd hh:mm:ss = %DATE% %TIME:~0,8% ping -n 5 localhost >nul goto :loop pause ::---ここまで--- ちなみに、ping は、SLEEPのつもり |
▲このページのトップに戻る
475244 | Re:バッチでの現在日時文字列取得後のファイル書き込みに | ほとほと | 2009/04/16-17:44 |
記事番号475242へのコメント pandoraさま ありがとうございます。 確かに、2番目の記載などは簡単で助かります。(^^/ が、for を使用して .exe のパラメータ値を変えながら となるととたんにおかしくなるようです。汗。 何か良い知恵がありますでしょうか? ※実行結果の判断ロジックは1つにしたいのですが。。 わがままを申してすいません。 |
▲このページのトップに戻る
475248 | Re:バッチでの現在日時文字列取得後のファイル書き込みに | pandora | 2009/04/16-18:29 |
記事番号475244へのコメント ほとほとさんは No.475244「Re:バッチでの現在日時文字列取得後のファイル書き込みに」で書きました。 なるほどね じゃぁ、遅延環境変数形式で取得しましょ こんな感じで ::---ここから--- @ECHO OFF SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION for %%T in (1,2,3,4,5,6) do ( test.exe %%T >>logfile.txt if ERRORLEVEL 1 ( echo !DATE! !TIME:~0,8! エラーです。>>logfile.txt ) else ( echo !DATE! !TIME:~0,8! 正常終了>>logfile.txt ) rem SLEEP ping -n 5 localhost >nul ) pause ::---ここまで--- なお、問題がある場合は、 具体的に、どこが、どうおかしいか 書いてくれるとアドバイスもやりやすい |
▲このページのトップに戻る
475251 | Re:バッチでの現在日時文字列取得後のファイル書き込みに | ほとほと | 2009/04/16-19:19 |
記事番号475248へのコメント pandoraさま たしかにうまくいきました。ありがとうございました! 遅延環境変数形式。。。 まだまだ勉強不足でした。 大変に助かりました。ありがとうございました! |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|