5

ID、、、modelおよびのファイルがありますdate。ファイルの形式は次のようになります10000_9999-99_10-01-2011.zip(は10000、、はID、、9999-99そしてmodelもちろん10-01-2011date)です。

これらのファイルのを変更したいdateのですが、同じでセッション間の間隔を維持しますID。たとえば、2つのセッションに日付1/1/20112/1/2011があり、最後のセッションの日付をに更新したい8/1/2012場合、最初のセッションには日付があります7/1/2012

現在、私のコードは次のようになっています。

@echo off
setlocal enabledelayedexpansion
del filedates.txt
FOR /F "tokens=1,2,3,4,5 delims=_" %%a in (filenames.txt) do @echo %%c >>filedates.txt
FOR /F "tokens=1,2,3 delims=-" %%a in (filedates.txt) do (
  echo %%a%%b
)

出力は次のようになります(YearMonth):

201107
201109
201204
etc..

filedates.txtの行を読み取り、この日付を変数として格納してから、次の行を読み取り、これを別の変数として格納しようとしていました。そうすれば、2つの変数を比較してどちらが大きいかを確認でき、プロセスが続行されます。

4

1 に答える 1

2

一度に2行を読み取る簡単な方法の1つは、入力ファイルの行を1つずつfor /fループで処理し、偶数行にのみ「反応」することです。サンプルコードは次のとおりです。

@echo off
setlocal enabledelayedexpansion
set evenflag=1
for /f "tokens=*" %%x in (filedates.txt) do set x1=!x2! && set x2=%%x && (
set /a evenflag^^=1 && if !evenflag!==1 (
    rem Do something with !x1! and !x2!
))

ここで、変数evenflagは、現在の行番号が偶数かどうかを示すブールフラグです(1偶数行の場合0は奇数行)。現在読み取られている行のペアを保持しますx1x2

于 2012-09-14T22:13:40.593 に答える