Windows 2003サーバーにバッチファイルを作成する必要があります。 Cygwinがインストールされているので、unixコマンドを実行できます。ファイルを最終変更ファイルと比較して出力ファイルを.TXTファイルに変換
毎晩、プロセスは、タイムスタンプのファイルをダウンロードします、FILEの*の%のYYYY %% MM %% DD%.txtのにC:\一時\のダウンロード。
FTPプロセスは別の場所にFTPを転送し、ファイルをc:\ temp \ download \ archivedに移動します。
私たちが達成しようとしているのは、ftpする前に、c:\ temp \ download内の新しいファイルとc:\ temp \ download \ archived内の最後に変更されたファイル最後のファイルがアップロードされてから変更された行。現在の日のtxtファイルには、前日と異なる行のみが含まれている必要があります。
私は2つのファイルを並べ替えて比較することが成功して、次のスクリプトを実行している:
@echo on
set archive=C:\temp\download\archived
set download=C:\temp\download\
pushd "%archive%"
for /f "tokens=*" %%G in ('dir *.txt /b /a-d /od') do SET oldfile=%%G
pushd "%download%"
for /f "tokens=*" %%H in ('dir *.txt /b /a-d /od') do SET newfile=%%H
echo The last file processed was %oldfile%
echo The new file is %newfile%
comm -2 -3 <(sort %archive%\%oldfile%) < (sort %download%\%newfile%) > %download%\%newfile%
pushd "%download%"
popd
スクリプトがソートせずに動作しますが、それが追加されると、スクリプトが失敗しました。
COMM -2 -3 C:COMM -2 -3%アーカイブ%\%OLDFILE%%%\%NEWFILE%作品をダウンロードするが、並べ替えを追加するとエラーと、しない場合に実行
:\ temp \ download \ archived \ CPSNS_20140527075503.txt) C:\ temp \ download \ CPSNS_20140602075502.txt)0 <(ソート1> c:\ temp \ download \ workpl ease.txt システムは指定されたファイルを見つけることができません。
「yyyy」は2014ですか?これは過去ですか? findstr/v/G: "prevDay"/F: "curDay"> "diff.log" '' prevDay'と 'curDay'の違いを' diff.log'に出力する必要があります。 'curDay'という名前のファイルの中で最も高い番号のファイルと、' prevDay'の次のファイルのファイルです。 – Bloodied