2016-09-16 21 views
0

私は日付を含むテキストファイルを1つ持っていますが、現在の日付とその日付を比較したいと思います。もし私が他の賢明な何かアクションを実行する必要がありますそれは他のステートメントを印刷します。バッチスクリプト - 現在の日付と内部のテキストファイルの日付とを比較する方法

私は以下のコードを試しましたが、コードは取得できません。 変数にはすべての値が含まれますが、比較のために最後の値が使用されます。

コード:

for /f %%i in (' MyFile.txt') do set ren=%%i 
echo %ren% 
if %ren% == %date% goto same 

goto notsame 

:same 
echo Dates the same, do some code here 
exit /b 

:notsame 
echo Dates NOT the same, do some code here 
exit /b 

テキストファイル:あなたのPC上echo %date:~-10%の出力は、その後のMyfile.txtの内容のものと同じ形式で返された場合

06/04/2017 
16/09/2016 
04/05/2016 
+2

どのようにテキストファイルのコンテンツを作成しましたか?別の方法で尋ねられます:テキストファイルの日付形式は常に 'echo%date%'によって返される形式に従っていますか? – aschipfl

+0

私の要件に基づいてsqlからテキストファイル情報を収集し、ある特定のディレクトリにスプールしました... –

+0

これはバッチコマンド( 'echo%date%')から派生した日付形式が形式テキストファイルで使用されていますが、それは本当ですか?これはすべてをより複雑にします。しかし、標準化された形式でシステムまたはファイルの日付を取得することについては、ここで多くの質問があります。また、 '%date%'の出力を解析してプログラムでテキストファイルの形式で日付値を作成することもできますが、これはロケールに依存します... – aschipfl

答えて

0

for /f %%i in (MyFile.txt) do if "%%i" equ "%date:~-10%" (call :same) else (call :notsame) 
pause 
exit /b 
:same 
echo Dates the same, do some code here 
goto :eof 
:notsame 
echo Dates NOT the same, do some code here 
goto :eof 
+0

あなたの応答には本当にありがとうございます。 –

+0

あなたに合った答えをいただき、うれしいです。 _これは、サイト、将来、以前の視聴者に役立ち、回答者に動機付けを促し、回答を修正することがそのようにマークされています。 – Compo

0
@ECHO OFF 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
SET "filename1=%sourcedir%\q39533625.txt" 
findstr /x "%date%" "%filename1%">nul 

IF ERRORLEVEL 1 (
ECHO DATE %DATE% NOT found 
) ELSE (
ECHO DATE found:%date% 
) 

GOTO :EOF 

状況に応じてsourcedirfilename1の設定を変更する必要があります。

テスト用にデータが入っているq39533625.txtという名前のファイルを使用しました。

findstr /xファイル内の現在の日付文字列を検索し、見つかった場合はerrorlevelを0に設定します。 /xは「完全一致」を意味します。 >nulfindstrのレポートの送信を抑制します。

+0

ありがとうございました..私は試してみてください... –

+0

こんにちはMagoo..sorry遅延..私はこれを試しましたが、働いていません...システムのフォーマットに基づいて私は%dateとして日付を変更しました:〜-10%それは働いていませんが。 –

関連する問題