0

ログ ファイル名の条件に基づいて、2 つの diff ディレクトリからログ ファイルを取得し、それらを同じターゲット ディレクトリにコピーする必要があります。ログファイル名に基づいてログを取得するロジックは正常に機能しており、コンソールに出力されます。

以下はスクリプトです。

@ECHO OFF
for /f "delims=" %%F in (
dir /b "C:\temp1\*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.) do if "%%F" geq "20130101" if "%%F" lss "20130931" echo %%F
for /f "delims=" %%F in ('dir /b "C:\temp2\*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.) do if "%%F" geq "20130101" if "%%F" lss "20130931" echo %%F
pause "Please enter any key to continue"

上記のスクリプトは、日付条件c:\temp1c:\temp2基づいてログ ファイルを取得し、 を使用してコンソールに出力しechoますが、これらのログ ファイルをターゲット ディレクトリにコピーする必要があります。c:\temp1ディレクトリから取得したログファイルc:\temp2がディレクトリにコピーされるようにするには、どこにコピー条件を追加する必要がありc:\temp3ますか?

また、別々のディレクトリに対して 2 つの別々の手順ではなく、1 つの手順で 2 つの異なるディレクトリからログ ファイルをコピーするという重複した手順を実行できますか。

copyコマンドを追加すると、スクリプトが機能しません。

4

1 に答える 1

1

スクリプトが壊れていました。明らかなエラーを修正し、ファイルをコピーするコードをc:\temp3追加し、ファイル名にプレフィックスを追加しました。2 つのフォルダーのファイル名が同じであるかのように、互いに上書きされます。

@echo off
md "c:\temp3" 2>nul
pushd "C:\temp1\"
for /f "delims=" %%F in ('dir /b "*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\."') do if "%%F" geq "20130101" if "%%F" lss "20130931" copy "%%F" "c:\temp3\temp1-%%F"
popd
pushd "C:\temp2\"
for /f "delims=" %%F in ('dir /b "*web_feed*.out*.gz"^|findstr "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\."') do if "%%F" geq "20130101" if "%%F" lss "20130931" copy "%%F" "c:\temp3\temp2-%%F"
popd
pause
于 2013-10-16T09:27:48.660 に答える