バッチでの現在日時文字列取得後のファイル書き込みに
パソコントラブル解決・過去ログTOP > ログTOP
「何か一言」を書く Facebookコメントができます
▲このページのトップに戻る
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さま たしかにうまくいきました。ありがとうございました! 遅延環境変数形式。。。 まだまだ勉強不足でした。 大変に助かりました。ありがとうございました!
パソコントラブル解決・過去ログTOP > ログTOP > バッチでの現在日時文字列取得後のファイル書き込みに
イベントが登録でき申込みができます。無料です。